1 Teorie čísel. Základní informace



Podobné dokumenty
ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

Základní jednotky používané ve výpočetní technice

Struktura a architektura počítačů (BI-SAP) 5

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Moravské gymnázium Brno s.r.o.

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Matematika B101MA1, B101MA2

Polynomy nad Z p Konstrukce faktorových okruhů modulo polynom. Alena Gollová, TIK Počítání modulo polynom 1/30

Číselné soustavy a převody mezi nimi

Racionální čísla. teorie řešené úlohy cvičení tipy k maturitě výsledky. Víš, že. Naučíš se

Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...

1 Mnohočleny a algebraické rovnice

4a) Racionální čísla a početní operace s nimi

Úvod do teorie dělitelnosti

7 = 3 = = Učivo Vysvětlení Př. + pozn. Zlomek = vyjádření části celku 3 část snědla jsem 3 kousky

Dosud jsme se zabývali pouze soustavami lineárních rovnic s reálnými koeficienty.

Nechť M je množina. Zobrazení z M M do M se nazývá (binární) operace

Prvočísla a čísla složená

ALGEBRA. Téma 4: Grupy, okruhy a pole

0.1 Úvod do lineární algebry

Kongruence na množině celých čísel

Pojem binární relace patří mezi nejzákladnější matematické pojmy. Binární relace

Operace s maticemi. 19. února 2018

ZLOMKY A RACIONÁLNÍ ČÍSLA. Pojem zlomku. Zlomek zápis části celku. a b. a je část, b je celek, zlomková čára

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Dělitelnost čísel, nejmenší společný násobek, největší společný dělitel

Teoretická informatika Tomáš Foltýnek Algebra Struktury s jednou operací

Fz =a z + a z +...+a z +a z =

Věta o dělení polynomů se zbytkem

2.8.6 Čísla iracionální, čísla reálná

0.1 Úvod do lineární algebry

1 Mnohočleny a algebraické rovnice

Rozšiřování = vynásobení čitatele i jmenovatele stejným číslem různým od nuly

Mikroprocesorová technika (BMPT)

Instrukce: Jednotlivé části nejdou přesně po sobě, jak jsme se učili, je to shrnutí.

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

Kritéria dělitelnosti Divisibility Criterions

Pomocný text. Polynomy

Modulární aritmetika, Malá Fermatova věta.

Moravské gymnázium Brno s.r.o.

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

V předchozí kapitole jsme podstatným způsobem rozšířili naši představu o tom, co je to číslo. Nadále jsou pro nás důležité především vlastnosti

Úvod do lineární algebry

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dušan Astaloš. samostatná práce, případně skupinová práce. pochopení znaků vztahů mezi čísly

(Cramerovo pravidlo, determinanty, inverzní matice)

Kódováni dat. Kódy používané pro strojové operace

Čísla a číselné soustavy.

Matice. Modifikace matic eliminační metodou. α A = α a 2,1, α a 2,2,..., α a 2,n α a m,1, α a m,2,..., α a m,n

Úvod do informatiky. Miroslav Kolařík

Číselné soustavy. Jedná se o způsob reprezentace čísel.

Modulární aritmetika, Malá Fermatova věta.

Mocniny. Nyní si ukážeme jak je to s umocňováním záporných čísel.

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

4 Počítání modulo polynom

Sčítání a odčítání Jsou-li oba sčítanci kladní, znaménko výsledku je = + 444

Digitální učební materiál

Operace s maticemi

1. 1 P Ř I R O Z E N Á Č Í S L A

Lineární algebra Operace s vektory a maticemi

Variace. Číselné výrazy

Číselné vektory, matice, determinanty

Lineární algebra. Matice, operace s maticemi

Převody mezi číselnými soustavami

Variace. Mocniny a odmocniny

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

VI. Maticový počet. VI.1. Základní operace s maticemi. Definice. Tabulku

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dělitelnost Rozklad na součin prvočísel. Dušan Astaloš

Jednoduché cykly

1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:

ČÍSELNÉ SOUSTAVY PŘEVODY

Zavedení a vlastnosti reálných čísel

Y36BEZ Bezpečnost přenosu a zpracování dat. Úvod. Róbert Lórencz. lorencz@fel.cvut.cz

Definice. Vektorový prostor V nad tělesem T je množina s operacemi + : V V V, tj. u, v V : u + v V : T V V, tj. ( u V )( a T ) : a u V které splňují

Historie matematiky a informatiky Cvičení 2

MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]

Diskrétní matematika 1. týden

Úvod do programování 7. hodina

5 čitatel zlomková čára 13 jmenovatel

1.2.3 Racionální čísla I

ZŠ ÚnO, Bratří Čapků 1332

10. Soustavy lineárních rovnic, determinanty, Cramerovo pravidlo

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Obsah. Euler-Fermatova věta. Reziduální aritmetika. 3. a 4. přednáška z kryptografie

Číslo materiálu. Datum tvorby Srpen 2012

)(x 2 + 3x + 4),

Matematické základy kryptografických algoritmů Eliška Ochodková

Prvočísla, dělitelnost

Nerovnice a nerovnice v součinovém nebo v podílovém tvaru

Západočeská univerzita v Plzni FAKULTA PEDAGOGICKÁ KATEDRA MATEMATIKY, FYZIKY A TECHNICKÉ VÝCHOVY

1.3. Číselné množiny. Cíle. Průvodce studiem. Výklad

pro každé i. Proto je takových čísel m právě N ai 1 +. k k p

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

Teorie množin. Čekají nás základní množinové operace kartézské součiny, relace zobrazení, operace. Teoretické základy informatiky.

Determinanty. Obsah. Aplikovaná matematika I. Pierre Simon de Laplace. Definice determinantu. Laplaceův rozvoj Vlastnosti determinantu.

Transkript:

1 Teorie čísel Základní informace V této výukové jednotce se student seznámí se základními termíny z teorie čísel, seznámí se s pojmy faktorizace, dělitelnost, nejmenší společný násobek. Dále se seznámí s modulární aritmetikou, číselnými soustavami o různých základech a se způsobem uložení čísel ve tvaru dvojkového doplňku. Výstupy z výukové jednotky Student bude umět najít největšího společného dělitele čísel, největší společný násobek, bude umět počítat se zbytkovými třídami, a bude umět převádět mezi číselnými soustavami a různém základu a provádět s nimi základní operace. 1.1 Motivace Možná Vám pojednání o číslech bude připadat jako velmi elementární, ale v informatice a algoritmizaci se hojně využívá množin čísel a s čísly se také pomocí základních aritmetických operací manipuluje. Z teorie čísel vyplývá i notace hojně používaná v informatice. Důležité je také pochopit, jak jsou čísla v počítačích reprezentována a jaká z toho plynou omezení při výpočtech. 1.2 Celá čísla Budeme předpokládat, že jsme seznámeni s pojmem přirozeného čísla (1,2,3,4,...,101,102,...,n,...). Zjednodušeně můžeme říci, že přirozená čísla jsou čísla, která používáme k běžnému počítání objektů z reálného světa. K těmto celým číslům nyní přidáme číslo nula (0), které můžeme definovat následujícím způsobem (n je libovolné přirozené číslo): 0 + n = n + 0 = n. Nakonec k této množině můžeme přidat také záporná čísla (-n) které můžeme definovat následujícím způsobem: n + (-n) = (-n) + n = 0. Zápis n + (-n) = 0 můžeme zjednodušeně psát n - n = 0. Množinu přirozených čísel, záporných čísel a nuly souhrnně nazýváme celá čísla. Množina celých čísel se v matematice většinou označuje Z, podle Zahlen (německy čísla). V informatice se pro množinu celých čísel používá termín integers, pro přirozená čísla termín positive integers případně negative integers pro záporná čísla. Množina celých čísel je uzavřená na operaci sčítání a násobení, což znamená že součet i součin dvou celých čísel je opět celé číslo. Navíc oproti přirozeným číslům je množina celých čísel uzavřená i pro odčítání. Není však uzavřena pro dělení, neboť podíl dvou celých čísel už nemusí být celé číslo (např. 1/2). Poznámka: Přirozeným číslem (číslem z oboru přirozených čísel) se v matematice rozumí kladné celé číslo (1, 2, 3, ). V oborech jako matematická logika, teorie množin a informatika se mezi přirozená čísla počítá i nula, což však v teorii čísel může vést k potížím. Pokud by mohlo dojít k nejasnostem, budeme množinu celých kladných čísel včetně nuly značit Z 0, a pro kladná celá čísla budeme používat označení Z +. Definice: To že je množina M uzavřená na nějakou operaci * se v teorii čísel vyskytuje velmi často a znamená to, že když tuto operaci aplikujeme na libovolné prvky z množiny M, tak výsledek bude také náležet do množiny M. Zapíšeme to následujícím způsobem:, Následující seznam představuje základní vlastnosti pro libovolná celá čísla: 1. a + b = b + a - komutativní zákon 2. a * b = b * a - komutativní zákon 3. a + ( b + c ) = ( a + b ) + c - asociativní zákon 1

4. a * ( b * c ) = ( a * b ) * c - asociativní zákon 5. a + 0 = a - existence neutrálního prvku 6. a * 1 = a - existence neutrálního prvku 7. a + (-a) = 0 - existence inverzního prvku 8. a * ( b + c ) = ( a * b ) + ( a * c ) - distributivní zákon 9. Pro ušetření místa budeme psát a k jako zkratku pro vynásobení čísla a samo sebou k-krát. Bude tedy platit, že 3 4 = 3*3*3*3 a 2 10 = 1024 10. a n * a m = a n+m 11. n 0 = 1 1.3 Faktorizace a prvočísla Jako faktorizace se v teorii čísel označuje problém rozložení čísla na součin menších čísel, v nejčastější podobě pak rozklad celého čísla na součin prvočísel. Například číslo 15 lze napsat jako součin 3 * 5. Obecněji lze rozkládat i jiné algebraické objekty, např. polynom druhého řádu x² 4 lze vyjádřit jako součin dvou polynomů prvního řádu (x 2)(x + 2). Rozklad celého čísla na prvočinitele je považován za velmi těžkou úlohu a na její nezvládnutelnosti pro velká čísla jsou založeny některé kryptografické metody, např. algoritmus RSA pro šifrování s veřejným klíčem. 1 Ne všechna celá čísla lze rozdělit na prvočinitele. Ty, které nelze, jako např. 3, 5, 7, 11, 13,..., 2 216091-1 jsou právě prvočísla. Prvočísla jsou jak pro informatiky, tak i pro matematiky velmi fascinujícími objekty. Existují i vědní obory, které hledají nová prvočísla a snaží se najít nové či vylepšit stávající postupy pro rychlejší faktorizaci velkých čísel. 2 1.4 Dělitelnost Dělitelnost je vlastnost celých čísel. Celé číslo p je dělitelné nenulovým celým číslem q (číslo q dělí p), jestliže existuje takové celé číslo k, pro které platí, že p = k*q. Např. číslo 27 je dělitelné třemi, neboť 27 = 9 * 3. Číslo q se nazývá dělitel čísla p, zapisujeme p q. Alternativně můžeme říci, že je p dělitelné q, jestliže zbytek po dělení p q je nula. Následující seznam představuje další známé pojmy a fakta: 1. Jako triviální dělitele a Z označujeme čísla 1 a číslo a samotné 2. Celé číslo c je společným dělitelem celých čísel a a b jestliže c a a zároveň c b 3. Prvočíslo je číslo 2, které nemá jiné dělitele než triviální 4. Číslo, které není prvočíslem, nazýváme číslem složeným 5. Každé celé číslo 2 je buď prvočíslo, nebo se dá zapsat jako součin prvočísel Definice: Jestliže a,b Z a b 1, pak dělení čísla a číslem b dává čísla q (podíl) a r (zbytek) taková, že a = q*b + r, kde 0 r < b. Čísla q a r jsou jednoznačná. Zbytek po dělení budeme značit také a (mod b). Definice: Každé celé číslo n 2 se dá zapsat jednoznačně (až na pořadí) v kanonickém tvaru n = p 1 a1 * p 2 a2 *...* p k ak, kde p 1, p 2,..., p k jsou navzájem různá prvočísla a a 1, a 2,..., a k jsou celá kladná čísla. Příklad: Vyjádřete v kanonickém tvaru číslo 2394. Řešení: 1. 2394/2 = 1197 - číslem 2 již nelze dělit, zkusíme dále dělení číslem 3 2. 1179/3 = 399 3. 399/3 = 133 - číslem 3 již nelze dělit, číslem 5 také ne, zkusíme dělení číslem 7 4. 133/7 = 19 - číslo 19 je již prvočíslo, výsledek tedy bude 2394 = 2*3*3*7*19 1 Podle základní věty aritmetiky lze libovolné celé číslo jednoznačně rozložit na součin prvočísel. Pro takovou úlohu s velkými čísly však není znám žádný efektivní algoritmus a předpokládá se, že ani neexistuje. V současné době není známa přesná klasifikace této úlohy do tříd složitosti, je však známo, že (přesněji rozhodovací verze faktorizace má číslo N nějakého činitele menšího než M? ) patří do NP i co-np (odpovědi ANO i NE lze ověřit v polynomiálním čase). Předpokládá se, že padá mimo třídy P, NP-complete a co-np-complete. Zajímavé je, že zdánlivě podobná úloha je N číslo složené (či ekvivalentně: je N prvočíslo ) je zřejmě mnohem jednodušší: bylo dokázáno, že ji lze vyřešit v polynomiálním čase. [Zdroj: wikipedia.org] 2 http://primes.utm.edu/ 2

Příklady na procvičení: 3600 = 2 4 * 3 2 * 5 2 4864 = 2 8 * 19 3458 = 2 * 7 * 13 * 19 Definice: Kladné celé číslo d je největším společným dělitelem (dále jen NSD, anglicky GCD - greatest common divisor) celých čísel a a b, když platí: 1. d je společný dělitel celých čísel a a b. 2. Jestliže nějaké celé číslo d 1 dělí obě čísla a a b, pak d 1 dělí také d. Euklidův algoritmus slouží k nalezení NSD dvou čísel. function nsd(a, b) { } var c; while (b!= 0) { } c = b; b = a mod b; a = c; return a; Příklad: Ukázka výpočtu Euklidova algoritmu pro čísla 72 a 246: 1. 246 = 3 * 72 + 30 (246 mod 72 = 30) 2. 72 = 2 * 30 + 12 (72 mod 30 = 12) 3. 30 = 2 * 12 + 6 (30 mod 12 = 6) 4. 12 = 2 * 6 + 0 NSD(72, 246) = 6 Příklad: Společní dělitelé čísel 12 a 18 jsou {1,2,3,6}. NSD(12,18) = 6 Definice: Kladné celé číslo d je nejmenším společným násobkem (dále jen NSN, anglicky LCM - least common multiple) celých čísel a a b když platí: 1. a d a zároveň b d. 2. Jestliže a d 1 a b d 1, pak d d 1 pro nějaké celé číslo d 1. Příklad: Jestliže a a b jsou kladná celá čísla, pak NSN(a,b) = a*b / NSD(a,b). Např.: NSN(12,18) = 12*18/NSD(12,18) = 12*3 = 36. Příklad: Je snadné nalézt NSD a NSN dvou celých čísel 2, pokud je vyjádříme v kanonockém tvaru: 300 = 2 2 * 3 1 * 5 2 18 = 2 1 * 3 2 NSD(300,18) = 2 1 * 3 1 * 5 0 = 6 NSN(300,18) = 2 2 * 3 2 * 5 2 = 900 Definice: Dvě celá čísla jsou nesoudělná (relatively prime), když jejich NSD je 1 Domácí cvičení: Následující tabulka obsahuje kritéria dělitelnosti vybraných celých čísel v desítkové číselné soustavě, která umožňují snadno zjistit, je-li celé číslo dělitelné malým číslem q. 3 q kritérium příklad 2 je-li na místě jednotek sudé číslo 128, 1002 3 je-li ciferný součet dělitelný 3 228 (2+2+8 = 12, 1+2 = 3) 3 Kompletní tabulku lze nalézt na adrese http://cs.wikipedia.org/wiki/d%c4%9blitelnost 3

4 je-li poslední dvojčíslí dělitelné 4 612,1008 5 je-li na místě jednotek 5 nebo 0 35, 10540 6 je-li číslo dělitelné 2 a 3 924, 29250 8 je-li poslední trojčíslí dělitelné 8 12504. 9 je-li ciferný součet dělitelný 9 1683 (1+6+8+3 = 18) 10 je-li na místě jednotek 0 1220, 2180 12 je-li číslo dělitelné 3 a 4 zároveň, je dělitelné i 12. 65 412 (6+5+4+1+2 = 18 dělitelné třemi OK); 65 412 (12/4 = 3 OK) 13 je-li rozdíl součtu lichých a sudých trojic cifer dělitelný třinácti 2022046 (002-022+046 = 26) 14 je-li číslo dělitelné 2 a 7 868, 5964 15 je-li číslo dělitelné 3 a 5 930, 1170 18 je-li číslo dělitelné 9 a 2 1134, 162 20 je-li číslo dělitelné 5 a 4, je-li poslední dvojčíslí dělitelné 20 1680, 5142800 25 je-li poslední dvojčíslí dělitelné 25 125, 15475 30 je-li číslo dělitelné 3 a 10 4590, 631110 40 je-li poslední trojčíslí dělitelné 40 5200,684 1.5 Modulární aritmetika Obecnější a zajímavější než zkoumat dělitelnost čísel, je zajímavé zkoumat zbytek při dělení. Na rozdíl od běžné aritmetiky je modulární aritmetika definována na konečné množině Z n. Ta vznikne ze Z tak, že jsou ztotožněna čísla se stejným zbytkem po dělení číslem n. Někdy se této aritmetice říká aritmetika zbytkových tříd. Definice: Uvažujme celá čísla a a b a přirozené číslo n (a,b Z, n N) a označme symbolem "a mob n" zbytek při dělení čísla a číslem n. Příklad: V programovacích jazycích se pro výpočet zbytku po dělení používá právě operace mod. Například: 25 mod 4 = 1 - protože 25 / 4 = 6 a zbytek je 1 19 mod 5 = 4 - protože 19 = 3 * 5 + 4 24 mod 5 = 4 Definice: Řekneme, že a je kongruentní s b modulo n, pokud a mod n = b mod n. Jinými slovy, zbytek při dělení a n a b n je tentýž. Píšeme pak a b (mod n). Dále pak platí že: a b (mod n) n dělí (a-b) Příklad: 53 mod 7 = 4 53 4 (mod 7) Příklad: Všem známé užití modulární aritmetiky je například ve 12-hodinovém určování času. Den je rozdělen na dva 12-ti hodinové úseky. Jestliže je nyní čas 7:00, pak o 8 hodin později to bude 3:00. Obvyklým sčítáním by nám ale vyšlo že by mělo být 7 + 8 = 15 hodin. Vzhledem ale k tomu že je k dispozici pouze 12 hodinových úseků, tak se čas vždy ve 12 hodin začne počítat od začátku. Vzhledem k tomu, že se hodiny začnou počítat od začátku vždy ve 12 hodin, tak v tomto případě můžeme mluvit o aritmetice modulo 12. Díky tomu se můžete u modulární aritmetiky setkat s označením Clock arithmetic. Příklad: Jaké další příklady modulárních aritmetik z běžného života znáte? hodiny, týdny, roky... 14 2 (mod 12), 730 0 (mod 365) Níže následuje seznam základních vlastností kongurence. Pro všechna a, b, a 1, b 1, c Z platí: 1. a b (mod n) právě tehny, když zbytek po dělení čísel a i b číslem n je stejný 2. a a (mod n) pro a Z - reflexivita 3. Jestliže a b (mod n) b a (mod n) - symetrie 4. Jestliže a b (mod n) a b c (mod n), potom a c (mod n) - tranzitivita 4

5. Jestliže a a 1 (mod n) a b b 1 (mod n), potom a + b a 1 + b 1 (mod n) Z předchozího vidíme, že relace kongruence je ekvivalencí, protože je reflexivní, symetrická a tranzitivní. Třída ekvivalence celých čísel a je množina všech celých čísel kongruentních s a modulo n. Vidíme, že pro dané n relace kongruence a modulo n dělí množinu Z na třídy ekvivalence, na tzv. zbytkové třídy modulo n. Definice: Nechť je dáno n > 0. Pro každé celé číslo a definujeme [a] n = {x x a (mod n)} jako množinu celých čísel kongruentních a modulo n a nazveme ji množinou zbytkových tříd modulo n - značíme Z n. Příklad: Každé číslo ze Z n reprezentuje zbytkovou třídu. Nechť n = 7, zbytkové třídy modulo 7 označme jako [0] 7, [1] 7,..., [6] 7, pak [2] 7 = {..., -12, -5, 2, 9, 16,...}. Definice: Nechť a Z n. Multiplikativní inverzní prvek k prvku a mod n je číslo x Z n takové, že a*x 1 (mod n). Pokud takové x existuje, pak je jednoznačné. Inverzní prvek k a mod n označujeme a -1. Definice: Nechť a Z n. Dělení čísla a číslem b modulo n je definováno jako součin a * b -1 definováno jen tehdy, je-li b invertovatelné mod n. modulo n je Definice: Nechť a Z n. Aditivní opačný prvek k prvku a modulo n je číslo x Z n takové, že a + x 0 (mod n). Pokud takové x existuje, je jednoznačné. Opačný prvek k a modulo n budeme označovat x. Pro určení toho, zda k danému a Z n existuje inverzní prvek využijeme faktu, že číslo a je invertovatelné právě tehdy když NSD(a,n) = 1. Příklad: Nechť n = 9, Z n = {0, 1, 2, 3, 4, 5, 6, 7, 8}. Určete invertovatelné prvky. Řešení: Invertovatelné jsou prvky 1, 2, 4, 5, 7, 8, např. 5 1 = 2, protože 5 2 1 (mod 9) Příklad: Kolik je 3 8 (mod 7)? Řešení: a) 3 8 3 4 * 3 4 (81 (mod 7)) * (81 (mod 7)) 4*4 = 16 2 (mod 7) b) 3 8 = 6561 2 (mod 7) protože 6561 = 937 * 7 + 2 Příklady: 1. Určete všechny zbytkové třídy modulo 11. 2. Určete aditivní opačný prvek ke každému prvku ze Z 8. 3. Určete multiplikativní inverzní prvek ke každému prvku ze Z 8 (existuje-li). 4. Určete multiplikativní inverzní prvek ke každému prvku ze Z 11 (existuje-li). 5. Spočtěte 11 13 (mod 53). 6. Spočtěte 5 9 (mod 42). 1.6 Racionální a reálná čísla Racionální číslo je číslo, které lze vyjádřit jako zlomek, tj. podíl dvou celých čísel, většinou zapsaný ve tvaru nebo a/b, kde b není nula. Číslo a označujeme jako čitatel a číslo b jako jmenovatel. Každé racionální číslo lze vyjádřit nekonečně mnoha zlomky (např. 1/2 = 2/4 = 3/6...). Nejjednodužší je tvar, kde jsou čísla a a b nesoudělná a b je kladné. Každé racionální číslo má tento základní tvar dán jednoznačně. Množinu všech racionálních čísel značíme Q. Reálná čísla jsou taková čísla, kterým můžeme jednoznačně přiřadit body nekonečné přímky (číselné osy) tak, aby tato čísla popisovala vzdálenost od nějakého vybraného bodu (nuly) na takové přímce. Tato nula pak přirozeně dělí reálná čísla na kladná a záporná. Množinu všech reálných čísel označujeme R. Reálné číslo, které není racionální, se nazývá iracionální číslo. Iracionální čísla jsou např. 2 nebo π. 5

1.7 Číselné soustavy Pravidla pro zápis čísla pomocí číslic nazýváme číselnou soustavou. Z běžného života známe například soustavu desítkovou, šedesátinnou (čas) či římskou. Obecně můžeme vyjádřit pravidlo zápisu čísla v soustavě mnohočlenem (polynomem): x m * g m + x m-1 * g m-1 +... + x 1 * g 1 + x 0 * g 0 + x -1 * g -1 +... + x -n * g -n Např.: 3542,395 (10) = 3*10 3 + 5*10 2 + 4*10 1 + 2*10 0 + 3*10-1 + 9*10-2 + 5*10-3 Každá číselná soustava, která zobrazuje čísla pomocí mnohočlenu (polynomu), se nazývá polyadická (polynomická) číselná soustava o základu g (desítková soustava má základ 10). Počítače mají však logické obvody, které pracují se dvěma logickými stavy (zapnuto = 1, vypnutu = 0), a proto je základem dnešních počítačů technologie založená na soustavě dvojkové. 4 Dvojková (binární) soustava je polyadická číselná soustava o základu g = 2. Dvojková soustava používá pouze dvě číslice, nulu a jedničku, ale i tak lze zobrazit ve dvojkové soustavě jakékoliv číslo (i když někdy nepřesně). Těmito prostými číslicemi zvanými bity (z anglického výrazu pro dvojkovou číslici BInary digit) lze vyjádřit jakékoli číslo tím, že ho rozložíme na součet postupných mocnin se základem 2, tj. na čísla: 2 0 = 1, 2 1 = 2, 2 2 = 4, 2 3 = 8, 2 4 = 16, atd. Pokud se při tomto rozkladu příslušná mocnina v daném řádu vyskytuje, zapisujeme ji jako 1, chybí-li píšeme 0. Pro lepší představu přepisu prvních deseti čísel z desítkové do dvojkové soustavy poslouží následující tabulka: Desítkové číslo Rozklad na posloupnost mocnin Zápis ve dvojkové soustavé 0 0000 1 1*2 0 0001 2 1*2 1 + 0*2 0 0010 3 1*2 1 + 1*2 0 0011 4 1*2 2 + 0*2 1 + 0*2 0 0100 5 1*2 2 + 0*2 1 + 1*2 0 0101 6 1*2 2 + 1*2 1 + 0*2 0 0110 7 1*2 2 + 1*2 1 + 1*2 0 0111 8 1*2 2 + 0*2 2 + 0*2 1 + 0*2 0 1000 9 1*2 2 + 0*2 2 + 0*2 1 + 1*2 0 1001 Osmičková (oktalová) soustava je polyadická číselná soustava o základu g = 8. Používá osm číslic: 0, 1, 2, 3, 4, 5, 6, 7. Desítková (dekadická) soustava je polyadická číselná soustava o základu g = 10. Používá číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Šestnáctková (hexadecimální) soustava je polyadická číselná soustava o základu g = 16. Používá šestnáct číslic (znaků): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (místo 10, 11, 12, 13, 14, 15). Šestnáctková soustava se používá například pro zápis barvy v HTML kódu. Je to v podstatě zkrácená forma zápisu dvojkové soustavy. 1.8 Převody mezi číselnými soustavami Převod z desítkové do dvojkové soustavy: mějme číslo 70, které budeme nyní chtít převést do dvojkové, binární soustavy. Číslo které chceme převést dělíme neustále dvojkou, až dojdeme k nule, přičemž si zapisujeme zbytky po celočíselném dělení. Pokud chceme převést číslo do jiné soustavy, například do šestnáctkové, budeme dělit šestnáctkou. Pokud do šestkové, dělíme šestkou. Takže v praxi bude výpočet vypadat takto: 70 / 2 = 35 0 (zbytek po dělení) 35 / 2 = 17 1 17 / 2 = 8 1 4 Dvojkovou soustavu již 3 000 let př. n. l. objevil čínský císař Fou-Hi, za novodobého průkopníka dvojkové soustavy považujeme Gottfrieda Wilhelma Leibnitze (1646-1716). 6

8 / 2 = 4 0 4 / 2 = 2 0 2 / 2 = 1 0 1 / 2 = 0 1 Výsledné číslo ve dvojkové soustavě udávají zbytky po dělení. Čísla čteme od spodu nahoru. Takže číslo 70 v binární soustavě je 1000110. Převod z dvojkové do desítkové soustavy: mějme binární číslo 1100010 a převeďme ho do desítkové soustavy. Stačí vypočítat tento součet: 1100010 2 = 1*2 6 + 1*2 5 + 0*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 0*2 0 Číslo 1100010 má sedm číslic, takže mocniny u čísla dva budou postupně 6, 5,, 1, 0. Po umocnění a vynásobení získáme výraz: 1100010 2 = 64 + 32 + 2 = 98 10 Převod desetinných čísel: Binární desetinná čísla se do desítkové soustavy převádí stejný způsobem, například číslo 101.1011 můžeme zapsat jako 2 2 + 2 0 + 2-1 + 2-3 + 2-4 = 4 + 1 + 0.5 + 0.125 + 0.0625 = 5.6875. Pozor při převodu čísel mezi soustavami, může totiž nastat situace, kdy nám při převodu vznikne cyklus a číslo tak v požadované soustavě nepůjde přesně zapsat. Například pří převodu čísla 0.4 10 do dvojkové soustavy: 0.4 / 2 = 0.8 0 (zbytek po dělení) 0.8 / 2 = 1.6 1 0.6 / 2 = 1.2 1 0.2 / 2 = 0.4 0 0.4 / 2 = 0.8 0 - zde se již začíná výpočet opakovat výsledkem tedy bude periodické číslo 0.4 10 = 0.0110011001100... 2 Převod do jiných soustav: postup na převod z desítkové do binární soustavy je natolik univerzální, že lze použít i na jiné soustavy. Pokud chceme převést číslo 185 do šestnáctkové soustavy, jen dělíme 16: 185 / 16 = 11 9 (zbytek po dělení) 11 / 16 = 0 11 Číslo 185 by v 16 soustavě mělo tvar (11, 9). Místo číslic nad 9 se používají písmena, takže 10 = A, 11 = B, 12 = C, Můžeme tak napsat, že číslo 185 má v 16 soustavě tvar B9. Podobně můžeme převést číslo B9 z 16 soustavy do desítkové: B9 16 = 11 * 16 1 + 9 * 16 0 = 11 * 16 + 9 = 185 10 Příklady: Převeďte následující binární čísla do desítkové soustavy: 101.001 2, 101111 2, 0.10101 2, 11.0001 2 Převeďte následující desítková čísla do binární soustavy: 50 10, 70 10, 64 10, 39.56 10 1.9 Aritmetické operace s binárními čísly Sčítání binárních čísel: binární čísla je možné sčítat stejným způsobem, jakým sčítáme čísla desítková. K přenosu jedničky do vyššího řádu dojde tehdy, je-li výsledkem součtu dvou čísel pod sebou hodnota větší nebo rovna 10 2. Ne náhodou je číslo ciferně shodné s číslem dekadickým. Musíte si však uvědomit, že 10 2 =2 10. Postup začneme v příkladu tak, že v pravém sloupci: 0 + 1 = 1, v prostředním sloupci je opět 1 + 0 = 1 a ve sloupci levém je 1 + 1 = 10 2. Zde dojde k přenosu jedničky, zapíšeme tedy nulu a do nejvyššího řádu připíšeme jedničku. Binárně Dekadicky 1 1 0 6 7

+ 1 0 1 + 5 --------- -------- 1 0 1 1 1 1 Odčítání binárních čísel: budeme postupovat obdobným způsobem. V příkladu nejprve odečteme 1 1 = 0 v pravém sloupci tak, jak jsme zvyklí, a v následujícím sloupci 1 0 = 1. Ve třetím sloupci zprava pak počítáme rozdíl 0 1 (odečítáme větší číslo od menšího). U desítkových čísel si v takovém případě vypomáháme přidáním jedničky ve vyšším řádu menšence (číslo, od kterého odčítáme). Tu vykompenzujeme tím, že ji odečteme v následujícím sloupci vlevo (dojde tedy k přenosu 1). Např. rozdíl 5 8 spočítáme jako 15 8=7, zapíšeme sedm a v následujícím vyšším řádu odečteme jedničku. Stejným způsobem budeme postupovat i zde. Místo 0 1 tedy budeme počítat 10 1 = 1 a do výsledku zapíšeme 1. V dalším řádu (v levém sloupci) odečteme jedničku, kterou jsme si vypůjčili, tedy 1 1 = 0, přičemž nulu již do výsledku nezapisujeme. Binárně Dekadicky 1 0 1 0 1 1-1 0 1-5 ---------- -------- 1 1 0 6 Násobení binárních čísel: Způsob násobení binárních čísel se nijak neliší od způsobu, jakým násobíme čísla desítková. Při samotném násobení vlastně ani nijak nepocítíme, že se jedná o binární čísla. Rozdíl nastane až při sčítání mezivýsledků, kdy budeme postupovat způsobem popsaným výše. Všimněte si, že v podstatě neděláme nic jiného, než že horní číslo buď opisujeme v nezměněné podobě, pokud násobíme jedničkou, nebo píšeme samé nuly. Bez zajímavosti není také násobení dvěma. Můžete si vyzkoušet vynásobit jakékoliv binární číslo dvěma. Dvojka je v binární soustavě reprezentována číslem 10 2. Efekt bude stejný jako kdybyste v desítkové soustavě násobili deseti. Budeme v podstatě jen přidávat nuly zprava. Násobení (i dělení) binárního čísla mocninami dvojky se tak stává velice snadnou záležitostí. Binárně Dekadicky 1 0 1 1 1 1 * 1 0 1 * 5 -------------- -------- 1 0 1 1 5 5 0 0 0 0 1 0 1 1 -------------- 1 1 0 1 1 1 Příklady: Spočítejte součet následujících čísel: 111 2 + 111 2, 1110 2 + 11 2, 11101 2 + 11001 2 Spočítejte součin následujících čísel: 1110 2 * 11 2, 111 2 * 101 2, 101 2 * 10001 2 1.10 Dvojkový doplněk Ukázali jsme si, jak lze zapsat čísla stejných hodnot v různých číselných soustavách. Celou problematiku jsme trochu zjednodušili tím, že jsme pracovali pouze s celými kladnými čísly. Čísla záporná bychom mohli vyjádřit s použitím znaménka, jak jsme tomu zvyklí z desítkové soustavy. Jeden bit pak musíme vyhradit pro uložení informace o znaménku. Na samotném převodu by se v takovém případě nic nezměnilo. Ve výpočetní technice se však často využívá výhodnějšího způsobu vyjádření záporného čísla ve tvaru tzv. dvojkového doplňku. Způsob jeho vytvoření je patrný na následujícím obrázku: 8

Dvojkový doplněk představuje způsob kódování záporných čísel v binární soustavě a usnadňuje výpočetním systémům operaci odčítání a aritmetické operace se zápornými čísly obecně. Chceme-li totiž vypočítat rozdíl dvou čísel vyjádřených v binární číselné soustavě, můžeme jednoduše číslo, které chceme odečíst, převést na dvojkový doplněk provedením negace a následným přičtením jedničky a poté obě čísla jednoduše sečíst. Povšimněte si, že dvojkový doplněk čísla vždy závisí na počtu bitů, kterými čísla reprezentujeme. Počítače obvykle reprezentují čísla pomocí 8, 16, 32 nebo 64 bitů. V závislosti na reprezentaci je pak při tvorbě dvojkového doplňku nutné příslušným způsobem zarovnat počet bitů daného čísla (tj. doplnit číslo zleva nulami). Příklad: Vytvořte dvojkový doplněk čísla 10110 2, pracujeme-li s osmibitovým vyjádřením čísla. Řešení: Zarovnáme počet bitů čísla na osm: 00010110 Provedeme negaci: 11101001 Přičteme jedničku: 11101010 Výsledkem je tedy číslo: 11101010 2 Příklady k procvičení TODO 9