{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Előadás anyag\n", "Nézzük meg a 8. heti előadás anyagát tartalmazó Jupyter notebook (08_ea.ipynb) tartalmát! Futtassuk az egyes cellákat, módosítsunk, kisérletezzünk szabadon!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. feladat\n", "Készítsünk programot, amely szimulál egy n hosszú pénzfeldobás sorozatot, majd kiírja a fejek és írások darabszámát!" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "51\n", "49\n" ] } ], "source": [ "# 1. megoldás\n", "import random\n", "n = 100\n", "nheads = 0\n", "ntails = 0\n", "for i in range(n):\n", " x = random.choice('HT')\n", " if x == 'H': \n", " nheads += 1\n", " else:\n", " ntails += 1\n", "print(ntails)\n", "print(nheads)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "42\n", "58\n" ] } ], "source": [ "# 2. megoldás\n", "import random\n", "n = 100\n", "x = [random.choice('HT') for i in range(n)]\n", "print(x.count('H'))\n", "print(x.count('T'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Oldjuk meg a feladatot 'fej' és 'írás' dobások használatával!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2. feladat\n", "\n", "Készítsünk programot, amely szimulál egy n hosszú pénzfeldobás sorozatot, majd kiírja a leghosszabb fej ill. írás sorozat hosszát!" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "T T T T T H H T H H H T T H H H T T H H\n", "3\n", "5\n" ] } ], "source": [ "import random\n", "\n", "def longest_sequence(x, sign):\n", " maxlen = 0\n", " actlen = 0\n", " for xi in x:\n", " if xi == sign:\n", " actlen += 1\n", " if actlen > maxlen:\n", " maxlen = actlen\n", " else:\n", " actlen = 0\n", " return maxlen\n", "\n", "n = 20\n", "x = [random.choice('HT') for i in range(n)]\n", "\n", "print(' '.join(x))\n", "print(longest_sequence(x, 'H'))\n", "print(longest_sequence(x, 'T'))" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "['T', 'H', 'H', 'T', 'T', 'H', 'H', 'H', 'H', 'T']\n", "4\n" ] } ], "source": [ "# ... a leghosszabb sorozat hossza (nem külön-külön számolva)\n", "\n", "import random\n", "n = 10\n", "sorsolas = [random.choice('HT') for i in range(n)]\n", "\n", "sorozat = 1\n", "sorozat_max = 1\n", "for x in range(1, n):\n", " if sorsolas[x] == sorsolas[x - 1]:\n", " sorozat += 1\n", " else:\n", " sorozat = 1\n", " \n", " if sorozat > sorozat_max:\n", " sorozat_max = sorozat\n", " \n", "print(sorsolas)\n", "print(sorozat_max)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Módosítsuk a megoldást úgy, hogy megadjuk azt is, hogy hány db ilyen (maximális hosszú) sorozat létezett a dobássorozatban!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Az előadás anyagához kapcsolódó feladatok\n", "- Módosítsuk a személyek és születési dátumok rendezett listáját megadó megoldást úgy, hogy az adott személyeknek ne a születési dátumát, hanem az életkorát (a betöltött évek száma) jelenítsük meg!\n", "- Oldjuk meg a két kockával dobott dobásösszeg gyakoriságok meghatározását szótár segítségével!\n", "- Hasonlítsuk össze (azaz 'mérjük meg') a 20. századi péntek 13-kák számát meghatározó megoldások futási idejét!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Feladatok\n", "- Készítsünk egy saját modult (azaz egy py kiterjesztésű szövegfájlt, amiben legyen pl. egy saját függvény)! Használjuk ezt a saját modult (azaz hívjuk meg pl. a modulban lévő függvényt)! \n", "- Határozzuk meg és írjuk ki azt, hogy hány napot éltünk!\n", "- Generáljunk véletlenszerűen egy ezévi (helyes) dátumot!\n", "- Készítsünk programot, amelyik 'kő-papír-olló' játékot szimulál két játékos között! Generáljunk n db véletlen 'választás-párt', értékeljük ki ezeket és adjuk meg, hogy hányszor nyert az első, hányszor a második játékos, ill. hány döntetlen született!" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " ### Házi feladatok\n", " - Az ember nem betűnként olvas, hanem valahogy másképp (pl. 'ránézéssel'). Ennek igazolására alakítsunk át egy mondatot (amelyben a szavak csak kisbetűket tartalmaznak és a szavak között pontosan egy db szóköz található) úgy, hogy a szavak sorrendjét megtartjuk, de a szavakat átalakítjuk! A legfeljebb 3 betűt tartalmazó szavak maradjanak változatlanok, a hosszabbak esetén az első és utolsó betűt a helyükön hagyva, a többi betűt keverjük meg véletlenszerűen! Nézzük meg, hogy el tudjuk-e olvasni az átalakított mondatot is kb. ugyanolyan gyorsan, mint az eredetit! Pl. 'na el tudod ezt is gyorsan olvasni' => 'na el tdoud ezt is gsryaon onslvai'.\n", " - Nehezítsük az előző feladatot a magyar két (pl. 'gy', 'sz'), ill. hárombetűs ('dzs') 'betűk' kezelésével! Az ilyen 'betűket' egy betűként kezeljük! Pl. a 'gyász' szó így 'hárombetűs' szó lévén nem fog megváltozni, de a 'lándzsa' szó 'ötbetűs', aminek egy átalakítása lehet a 'ldzsána' szó (ahol a 'dzs' betű egyben maradt)!" ] } ], "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.11.3" } }, "nbformat": 4, "nbformat_minor": 2 }