200 lines
7.2 KiB
Plaintext
200 lines
7.2 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": "code",
|
|
"execution_count": null,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3 (ipykernel)",
|
|
"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.12.5"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 2
|
|
}
|