Practice
This commit is contained in:
169
SajatMegoldasok/vizsga_02_minta.ipynb
Normal file
169
SajatMegoldasok/vizsga_02_minta.ipynb
Normal file
@ -0,0 +1,169 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Vizsgaminta 2."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 1. feladat [4p]\n",
|
||||
"\n",
|
||||
"A `planets` lista a Naprendszer bolygóinak tömegét és (átlagos) sugarát tartalmazza. Készítsünk programot, amely kiszámítja, hogy a bolygók felszínén érvényes nehézségi gyorsulás hányszorosa a földinek! A nehézségi gyorsulás képlete\n",
|
||||
"$$g = G \\frac{M}{R^2},$$\n",
|
||||
"ahol $G = 6,67408 \\cdot 10^{-11} \\frac{Nm^2}{kg^2}$ az univerzális gravitációs állandó, $M$ a bolygó tömege, $R$ pedig a bolygó tömegközéppontjától mért távolság. A program ne csak a `planets` listára működjön, hanem bármely ugyanilyen formátumú, bemenetre is! Elvárt futási eredmény:\n",
|
||||
"```\n",
|
||||
"\n",
|
||||
"Merkúr: 0.38\n",
|
||||
"Vénusz: 0.90\n",
|
||||
"Föld: 1.00\n",
|
||||
"...\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 28,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Merkúr: 0.38\n",
|
||||
"Vénusz: 0.9\n",
|
||||
"Föld: 1.0\n",
|
||||
"Mars: 0.38\n",
|
||||
"Jupiter: 2.64\n",
|
||||
"Szaturnusz: 1.14\n",
|
||||
"Uránusz: 0.92\n",
|
||||
"Neptunusz: 1.15\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"planets = [\n",
|
||||
" # bolygó neve, tömeg(10^21kg), sugár(km)\n",
|
||||
" ('Merkúr', 330.2, 2439.7),\n",
|
||||
" ('Vénusz', 4868.5, 6051.8),\n",
|
||||
" ('Föld', 5973.6, 6371.0),\n",
|
||||
" ('Mars', 641.85, 3389.5),\n",
|
||||
" ('Jupiter', 1898600, 69911),\n",
|
||||
" ('Szaturnusz', 568460, 58232),\n",
|
||||
" ('Uránusz', 86832, 25362),\n",
|
||||
" ('Neptunusz', 102430, 24622)\n",
|
||||
"]\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"G = 6.67408 * 10**-11\n",
|
||||
"\n",
|
||||
"#föld gravitacioja:\n",
|
||||
"M = planets[2][1] * 10 ** 21\n",
|
||||
"R = planets[2][2] * 1000\n",
|
||||
"fold_g = G * M / R ** 2\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"for i in planets:\n",
|
||||
" M = i[1]*10**21\n",
|
||||
" R2 = (i[2] * 1000) ** 2\n",
|
||||
" g = G* (M/R2)\n",
|
||||
" print(f\"{i[0]}: {round(g/fold_g,2)}\")\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 2. feladat [4p]\n",
|
||||
"\n",
|
||||
"Készítsünk programot, amely bekéri a felhasználótól $n$ értékét, szimulál $n$ darab kockadobást, majd kiírja, hogy mi volt a leghosszabb 6-os sorozat hossza! Példa futási eredmény:\n",
|
||||
"```\n",
|
||||
"n: 50\n",
|
||||
"31554643644341364414422455514666664664563666113524\n",
|
||||
"A leghosszabb 6-os sorozat hossza: 5\n",
|
||||
"```"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 43,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"463346463611214344644434512435364132263214511246655114424621542564625432253266512135666321524465236523511155213621633461152112634424142224413243313621\n",
|
||||
"A leghosszabb 6-os sorozat hossza: 3\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import random\n",
|
||||
"\n",
|
||||
"n = int(input(\"n: \"))\n",
|
||||
"max6 = 0; counter = 0; out = \"\"\n",
|
||||
"\n",
|
||||
"for i in range(n):\n",
|
||||
" ranum = random.randint(1,6)\n",
|
||||
" if ranum == 6:\n",
|
||||
" counter += 1\n",
|
||||
" else:\n",
|
||||
" counter = 0\n",
|
||||
" if counter > max6:\n",
|
||||
" max6 = counter\n",
|
||||
" \n",
|
||||
" out += str(ranum)\n",
|
||||
"print(out)\n",
|
||||
"print(\"A leghosszabb 6-os sorozat hossza:\", max6)\n",
|
||||
"\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### 3. feladat [12p]\n",
|
||||
"\n",
|
||||
"A [hotels.txt](hotels.txt) szövegfájl Las Vegas-i szállodák értékeléséről tartalmaz adatokat. Minden sor egy szállóvendég által kiosztott értékeléshez tartozik. Készítsünk programot, amely kiszámítja és kiírja az alábbi statisztikákat:\n",
|
||||
"- A szobák száma (`Nr. rooms`) alapján melyik az öt legnagyobb szálloda?\n",
|
||||
"- Melyik szállodá(ka)t értékelték (`Score`) átlagosan a legmagasabbra és mekkora ez az átlagpont?\n",
|
||||
"- Hány ponttal magasabb a medencével (`Pool`) rendelkező szállodák átlagos értékelése (`Score`) a többi szálloda átlagos értékeléséné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": 1
|
||||
}
|
199
SajatMegoldasok/vizsga_03_minta.ipynb
Normal file
199
SajatMegoldasok/vizsga_03_minta.ipynb
Normal file
@ -0,0 +1,199 @@
|
||||
{
|
||||
"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
|
||||
}
|
Reference in New Issue
Block a user