284 lines
11 KiB
Plaintext
284 lines
11 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Vizsgaminta 3."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 1. feladat [4p]\n",
|
||
"Készítsünk programot, amely pozitív egész számok egy nemüres listájára meghatározza és kiírja a lista azon elemét, amelyikben a számjegyek összege a legnagyobb! Ha több ilyen szám is lenne, akkor az elsőnek megtalált legyen az eredmény! Teszteljük a programot a `[245, 1132, 98, 465, 14231, 7854, 2542]` listával! "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"7854\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"\n",
|
||
"numblist = [245, 1132, 98, 465, 14231, 7854, 2542]\n",
|
||
"sum = 0; indx = 0\n",
|
||
"for i in numblist:\n",
|
||
" alt = str(i)\n",
|
||
" tempsum = 0\n",
|
||
" for ii in alt:\n",
|
||
" tempsum += int(ii)\n",
|
||
" if sum < tempsum:\n",
|
||
" sum = tempsum\n",
|
||
" indx = i\n",
|
||
"print(indx)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 2. feladat [6p]\n",
|
||
"Az `edges` lista kitalált személyekből képezett párokat tartalmaz. Egy pár azt jelenti, hogy az adott személyek ismeri egymást. Készítsünk függvényt, amely egy adott, ilyen felépítésű listára meghatározza azt a 2 személyt, akiknek a legtöbb közös ismerősük van! Ha több ilyen személypár is lenne, akkor az egyik ilyen pár legyen az eredmény! Hívjuk meg a függvényt az `edges` listára és írjuk ki a kapott eredményeket!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"A legtöbb közös ismerősük ('Géza', 'Dezső') személyeknek van, szám szerint 3.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"edges = [\n",
|
||
" (\"Adél\", \"Dezső\"), (\"Géza\", \"Mihály\"), (\"Károly\", \"Adél\"), (\"Antal\", \"Mihály\"), (\"Károly\", \"Sára\"),\n",
|
||
" (\"Mihály\", \"Vilma\"), (\"Dezső\", \"Vilma\"), (\"Vilma\", \"Antal\"), (\"Károly\", \"Mihály\"), (\"Elvira\", \"Adél\"),\n",
|
||
" (\"Izabella\", \"Adél\"), (\"Mihály\", \"Izabella\"), (\"Géza\", \"Vilma\"), (\"Károly\", \"Elvira\"), (\"Elvira\", \"Mihály\"),\n",
|
||
" (\"Géza\", \"Dezső\"), (\"Sára\", \"Adél\"), (\"Géza\", \"Adél\"), (\"Géza\", \"Izabella\"), (\"Izabella\", \"Dezső\") \n",
|
||
"]\n",
|
||
"counter = []\n",
|
||
"maxcount = 0\n",
|
||
"bestpair = []\n",
|
||
"counterer = 0\n",
|
||
"\n",
|
||
"for pair in edges:\n",
|
||
" counterer = 0\n",
|
||
" counter = []\n",
|
||
" \n",
|
||
" for a in edges:\n",
|
||
" if pair[0] in a:\n",
|
||
" other = a[1] if a[0] == pair[0] else a[0]\n",
|
||
" counter.append(other)\n",
|
||
" \n",
|
||
" for b in edges:\n",
|
||
" if pair[1] in b:\n",
|
||
" other = b[1] if b[0] == pair[1] else b[0]\n",
|
||
" if other in counter:\n",
|
||
" counterer += 1\n",
|
||
" \n",
|
||
" if maxcount < counterer:\n",
|
||
" maxcount = counterer\n",
|
||
" bestpair = pair\n",
|
||
"\n",
|
||
"print(f\"A legtöbb közös ismerősük {bestpair} személyeknek van, szám szerint {maxcount}.\")\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"A legtöbb közös ismerősük ('Adél', 'Mihály') személyeknek van, szám szerint 4.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"from collections import defaultdict\n",
|
||
"\n",
|
||
"def find_most_common_friends(edges):\n",
|
||
" # Szomszédsági lista létrehozása\n",
|
||
" adj_list = defaultdict(set)\n",
|
||
" for a, b in edges:\n",
|
||
" adj_list[a].add(b)\n",
|
||
" adj_list[b].add(a)\n",
|
||
"\n",
|
||
" max_common = 0\n",
|
||
" best_pair = ()\n",
|
||
"\n",
|
||
" # Minden lehetséges személypár közötti közös ismerősök keresése\n",
|
||
" persons = list(adj_list.keys())\n",
|
||
" for i in range(len(persons)):\n",
|
||
" for j in range(i + 1, len(persons)):\n",
|
||
" person1 = persons[i]\n",
|
||
" person2 = persons[j]\n",
|
||
" # Közös ismerősök metszetének meghatározása\n",
|
||
" common_friends = adj_list[person1].intersection(adj_list[person2])\n",
|
||
" common_count = len(common_friends)\n",
|
||
"\n",
|
||
" # Ha ez a páros több közös ismerőssel rendelkezik, frissítjük az eredményt\n",
|
||
" if common_count > max_common:\n",
|
||
" max_common = common_count\n",
|
||
" best_pair = (person1, person2)\n",
|
||
"\n",
|
||
" return best_pair, max_common\n",
|
||
"\n",
|
||
"# Az adott edges listán meghívjuk a függvényt\n",
|
||
"edges = [\n",
|
||
" (\"Adél\", \"Dezső\"), (\"Géza\", \"Mihály\"), (\"Károly\", \"Adél\"), (\"Antal\", \"Mihály\"), (\"Károly\", \"Sára\"),\n",
|
||
" (\"Mihály\", \"Vilma\"), (\"Dezső\", \"Vilma\"), (\"Vilma\", \"Antal\"), (\"Károly\", \"Mihály\"), (\"Elvira\", \"Adél\"),\n",
|
||
" (\"Izabella\", \"Adél\"), (\"Mihály\", \"Izabella\"), (\"Géza\", \"Vilma\"), (\"Károly\", \"Elvira\"), (\"Elvira\", \"Mihály\"),\n",
|
||
" (\"Géza\", \"Dezső\"), (\"Sára\", \"Adél\"), (\"Géza\", \"Adél\"), (\"Géza\", \"Izabella\"), (\"Izabella\", \"Dezső\") \n",
|
||
"]\n",
|
||
"\n",
|
||
"best_pair, common_friends_count = find_most_common_friends(edges)\n",
|
||
"print(f\"A legtöbb közös ismerősük {best_pair} személyeknek van, szám szerint {common_friends_count}.\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 3. feladat [10p]\n",
|
||
"\n",
|
||
"Az [unicef.txt](unicef.txt) szövegfájl a világ 5 év alatti népességének élelmezési helyzetéről tartalmaz adatokat. Az egyes sorok felméréseknek felelnek meg, a felmérések országonként időbeli sorrendben vannak felsorolva. Töltsük be az adatokat, határozzuk meg és írjuk ki az alábbi statisztikákat!\n",
|
||
"- Hány felmérés készült és hány országot érintett?\n",
|
||
"- Az alábbi statisztikákat csak azon felmérések alapján készítsük el, amelyeknél mind a három érintett indikátor (`Severe Wasting`, `Underweight`, `Overweight`) definiált (azaz ezek pozitív adatok). Ha egy országra több ilyen felmérés is van, akkor a legutóbbit vegyük figyelembe!\n",
|
||
" - Mely 5 országban a legmagasabb a `Severe Wasting` indikátor?\n",
|
||
" - Az országok hányadrészében magasabb az `Underweight` indikátor az `Overweight` indikátornál?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### 3. feladat [10p]\n",
|
||
"\n",
|
||
"Az [unicef.txt](unicef.txt) szövegfájl a világ 5 év alatti népességének élelmezési helyzetéről tartalmaz adatokat. Az egyes sorok felméréseknek felelnek meg, a felmérések országonként időbeli sorrendben vannak felsorolva. Töltsük be az adatokat, határozzuk meg és írjuk ki az alábbi statisztikákat!\n",
|
||
"- Hány felmérés készült és hány országot érintett?\n",
|
||
"- Az alábbi statisztikákat csak azon felmérések alapján készítsük el, amelyeknél mind a három érintett indikátor (`Severe Wasting`, `Underweight`, `Overweight`) definiált (azaz ezek pozitív adatok). Ha egy országra több ilyen felmérés is van, akkor a legutóbbit vegyük figyelembe!\n",
|
||
" - Mely 5 országban a legmagasabb a `Severe Wasting` indikátor?\n",
|
||
" - Az országok hányadrészében magasabb az `Underweight` indikátor az `Overweight` indikátornál?"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" Country United Nations Region United Nations Sub-Region \\\n",
|
||
"0 AFGHANISTAN Asia Southern Asia \n",
|
||
"1 AFGHANISTAN Asia Southern Asia \n",
|
||
"2 AFGHANISTAN Asia Southern Asia \n",
|
||
"3 ALBANIA Europe Southern Europe \n",
|
||
"4 ALBANIA Europe Southern Europe \n",
|
||
"\n",
|
||
" World Bank Income Classification Survey Year Survey Sample (N) \\\n",
|
||
"0 Low Income 1997 4846.0 \n",
|
||
"1 Low Income 2004 946.0 \n",
|
||
"2 Low Income 2013 21922.0 \n",
|
||
"3 Upper Middle Income 1996-98 7642.0 \n",
|
||
"4 Upper Middle Income 2000 1382.0 \n",
|
||
"\n",
|
||
" Severe Wasting Wasting Stunting Underweight Overweight \\\n",
|
||
"0 NaN 18,2 53,2 44,9 6,5 \n",
|
||
"1 3,5 8,6 59,3 32,9 4,6 \n",
|
||
"2 4,0 9,5 40,9 25,0 5,4 \n",
|
||
"3 NaN 8,1 20,4 7,1 9,5 \n",
|
||
"4 6,2 12,2 39,2 17,0 30,0 \n",
|
||
"\n",
|
||
" Source Notes \\\n",
|
||
"0 Afghanistan 1997 multiple indicator baseline ... Converted estimates \n",
|
||
"1 Summary report of the national nutrition surve... NaN \n",
|
||
"2 Afghanistan National Nutrition Survey 2013. (pending reanalysis) \n",
|
||
"3 National study on nutrition in Albania. Instit... Converted estimates \n",
|
||
"4 Multiple indicator cluster survey report Alban... NaN \n",
|
||
"\n",
|
||
" U5 Population ('000s) \n",
|
||
"0 3637,632 \n",
|
||
"1 4667,487 \n",
|
||
"2 5235,867 \n",
|
||
"3 307,887 \n",
|
||
"4 278,753 \n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"\n",
|
||
"frame = pd.read_csv(\"unicef.txt\", sep=\"|\")\n",
|
||
"print(frame[:5])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"keszult: 854\n",
|
||
"Orszag: 152\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"orszag = frame[\"Country\"].count()\n",
|
||
"\n",
|
||
"print(\"keszult: \",orszag)\n",
|
||
"\n",
|
||
"city = frame.groupby(\"Country\")[\"Survey Year\"].count().count()\n",
|
||
"\n",
|
||
"\n",
|
||
"print(\"Orszag: \",city)"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "Python 3",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.13.0"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|