diff --git a/cw/03_Entropia.ipynb b/cw/03_Entropia.ipynb index 3544f51..5edb1a1 100644 --- a/cw/03_Entropia.ipynb +++ b/cw/03_Entropia.ipynb @@ -39,10 +39,20 @@ "metadata": {}, "outputs": [], "source": [ + "import random\n", "from collections import Counter\n", "from dahuffman import HuffmanCodec" ] }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "NR_INDEKSU = 375985" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -52,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -61,7 +71,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -70,7 +80,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -92,7 +102,7 @@ " 's': 1})" ] }, - "execution_count": 5, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -103,7 +113,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": { "scrolled": true }, @@ -137,7 +147,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -160,7 +170,7 @@ " 's': (5, 31)}" ] }, - "execution_count": 7, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } @@ -171,7 +181,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [], "source": [ @@ -180,7 +190,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -189,7 +199,7 @@ "'1010010111010011010100110011100100001100110010101011111010110110000110101001110111111011'" ] }, - "execution_count": 9, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -214,7 +224,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -223,7 +233,7 @@ "'Ala ma kota. Jarek ma psa'" ] }, - "execution_count": 10, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -234,7 +244,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -243,7 +253,7 @@ "25" ] }, - "execution_count": 11, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -254,7 +264,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -263,7 +273,7 @@ "11" ] }, - "execution_count": 12, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -276,7 +286,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Zadanie 1 ( 30 punktów)\n", + "## Zadanie 1 ( 15 punktów)\n", "\n", "Weź teksty:\n", "- z poprzednich zajęć (lub dowolny inny) w języku naturalnym i obetnij do długości 100_000 znaków\n", @@ -352,12 +362,20 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Zadanie 2 \n", + "## Zadanie 2 (10 punktów)\n", "\n", "Powtórz kroki z zadania 1, tylko potraktuje wiadomości jako słowa (oddzielone spacją). Jeżeli występują więcej niż jedna spacja równocześnie- usuń je.\n", " \n", "Do wniosków dopisz koniecznie porównanie między kodowaniem hoffmana znaków i słów.\n", "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "### START ZADANIA" ] }, @@ -403,6 +421,74 @@ "### KONIEC ZADANIA" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Zadanie 3 (20 punktów)\n", + "\n", + "stwórz ręcznie drzewo Huffmana (zrób rysunki na kartce i załącz je jako obrazek) oraz zakoduj poniższy tekst " + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "random.seed(123)\n", + "\n", + "tekst = list('abcdefghijklmnoprst')\n", + "\n", + "random.shuffle(tekst)\n", + "\n", + "tekst = tekst[: 5 + random.randint(1,5)]\n", + "\n", + "tekst = [a*random.randint(1,4) for a in tekst]\n", + "\n", + "tekst = [item for sublist in tekst for item in sublist]\n", + "\n", + "''.join(tekst)\n", + "\n", + "random.shuffle(tekst)\n", + "\n", + "tekst = ''.join(tekst)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'ldddmpprphhopd'" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tekst" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Start zadania" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Koniec zadania" + ] + }, { "cell_type": "markdown", "metadata": {},