Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap.

Relaterede dokumenter
Talteori: Euklids algoritmer, modulær aritmetik

6. december. Motivation. Internettet: Login til DIKU (med password) Handel med dankort Fortrolig besked Digital signatur

Divisorer. Introduktion. Divisorer og delelighed. Divisionsalgoritmen. Definition (Divisor) Lad d og n være hele tal. Hvis der findes et helt tal q så

Tip til 1. runde af Georg Mohr-Konkurrencen - Talteori, Kirsten Rosenkilde. Opgave 1. Hvor mange af følgende fem tal er delelige med 9?

Spilstrategier. 1 Vindermængde og tabermængde

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, august 2013, Kirsten Rosenkilde.

Primtal - hvor mange, hvordan og hvorfor?

Algoritmer og invarianter

Spilstrategier. Indhold. Georg Mohr-Konkurrencen. 1 Vindermængde og tabermængde 2. 2 Kopier modpartens træk 4

Danmarks Tekniske Universitet

Opgave 1 Regning med rest

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

Danmarks Tekniske Universitet

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Dynamisk programmering

Primtalsfaktorisering - nogle nye resultater og anvendelser Regionalmøde Haderslev, 19. november 2003

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Fredag 12. januar David Pisinger

Tip til 1. runde af Georg Mohr-Konkurrencen. Talteori. Georg Mohr-Konkurrencen

Dynamisk programmering

Dynamisk programmering

Talteori. Teori og problemløsning. Indhold. Talteori - Teori og problemløsning, marts 2014, Kirsten Rosenkilde.

Danmarks Tekniske Universitet

Klasserne af problemer, der kan løses i deterministisk og i ikke-deterministisk polynomiel tid; polynomiel reduktion; N P-fuldstændighed

14 Algoritmeanalyse. Noter. Algoritmebegrebet. Hvad er algoritmeanalyse? Problemstørrelse og køretid. Køretid for forskellige kontrolstrukturer.

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

.. if L(u) + w(u, v) < L(v) then.. begin... L(v) := L(u) + w(u, v)... F (v) := u.. end. med længde L(z)}

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

TALTEORI Wilsons sætning og Euler-Fermats sætning.

Talteoriopgaver Træningsophold ved Sorø Akademi 2007

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Introduktion. Philip Bille

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Danmarks Tekniske Universitet

Projekt 7.9 Euklids algoritme, primtal og primiske tal

22 Hobe. Noter. PS1 -- Hobe. Binære hobe. Minimum-hob og maximum-hob. Den abstrakte datatype minimum-hob. Opbygning af hobe. Operationen siv-ned.

2. Gruppen af primiske restklasser.

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: 4 n n 3n n 2 /logn 5 n n (logn) 3n n 2 /logn 4 n n 5 n

Primtal. Frank Nasser. 20. april 2011

Danmarks Tekniske Universitet

t a l e n t c a m p d k Talteori Anne Ryelund Anders Friis 16. juli 2014 Slide 1/36

Noter til Perspektiver i Matematikken

Store Uløste Problemer i Matematikken. Lisbeth Fajstrup Aalborg Universitet

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Invarianter. 1 Paritet. Indhold

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Integer Factorization

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen (bemærk at log n betegner totals logaritmen): n 2 (log n) 2 2.

Danmarks Tekniske Universitet

Fra tilfældighed over fraktaler til uendelighed

Divide-and-Conquer algoritmer

Algebra - Teori og problemløsning

Danmarks Tekniske Universitet

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

BOSK F2012, 1. del: Prædikatslogik

3. Om skalamønstrene og den indfoldede orden

Divide-and-Conquer algoritmer

Noter om polynomier, Kirsten Rosenkilde, Marts Polynomier

19 Hashtabeller. Noter. PS1 -- Hashtabeller. Hashing problemet. Hashfunktioner. Kollision. Søgning og indsættelse.

Faglige mål: Håndtere simple formler og ligninger, herunder kunne oversætte fra symbolholdigt sprog til naturligt sprog og omvendt. Håndtere simple mo

Fra tilfældighed over fraktaler til uendelighed

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Datalogi 0 GA Forelæsning september 2003 Nils Andersen. Tegn og tekster. Listefunktionalen map. Naïv sortering

TALTEORI Wilsons sætning og Euler-Fermats sætning.

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E

DM507 Algoritmer og datastrukturer

Fermat, ABC og alt det jazz...

Differentiation af sammensatte funktioner

Martin Geisler Mersenne primtal. Marin Mersenne

Skriftlig Eksamen Algoritmer og Datastrukturer 1. Datalogisk Institut Aarhus Universitet

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Divide-and-Conquer algoritmer

Undersøgende aktivitet om primtal. Af Petur Birgir Petersen

DATALOGISK INSTITUT, AARHUS UNIVERSITET. Det Naturvidenskabelige Fakultet EKSAMEN. Grundkurser i Datalogi

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Asymptoter. for standardforsøgene i matematik i gymnasiet Karsten Juul

DM72 Diskret matematik med anvendelser

DIOFANTISKE LIGNINGER FERMATS SIDSTE SÆTNING

Matematiske metoder - Opgavesæt

DM549. Hvilke udsagn er sande? Which propositions are true? Svar 1.a: x Z: x > x 1. Svar 2.h: x Z: y Z: x + y = 5. Svar 1.e: x Z: y Z: x + y < x y

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: n+logn logn (logn) 7 (3/2) n

Algoritmedesign med internetanvendelser ved Keld Helsgaun

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET EKSAMEN. Grundkurser i Datalogi. Algoritmer og Datastrukturer 1 (2003-ordning)

ANALYSE 1, 2014, Uge 6

Opskriv følgende funktioner efter stigende orden med hensyn til O-notationen: (logn) 2 2 n 1/n (logn) n. n 2

1 Sætninger om hovedidealområder (PID) og faktorielle

Hyperelliptisk kurve kryptografi

Transkript:

Primtal Rekursion Kernebegreber, anvendelser og fundamenter i datalogi Torsdag den 17. marts 2005 Nils Andersen A.K. Dewdney kap. 50+24 Primtalsformler Stokastisk primtalstest Deterministisk primtalstest Sierpinskis kurve 1

Primtal og sammensatte tal De positive hele tal IN 1 = {1, 2, 3,...} a er et multiplum af b b går op i a b er divisor i a Z q : a = q b b a divisorer(n) = {d IN 1 d n} primtal = {p IN 1 divisorer(p) = 2} Hovedsætning: Hvert positivt helt tal kan på en og pånær rækkefølgen kun på en måde skrives som et produkt af primtal. (Tallet 1 dannes som det tomme produkt.) (Entydig korrespondance mellem de positive hele tal og uendelige følger af naturlige tal, som kun på endeligt mange pladser er forskellige fra nul.) Eratosthenes sigte: sieve (p : xs) = [x x <- xs; x mod p <> 0] primes = map hd (iterate sieve [2..]) 2

Primtalsformler 2 q + 1 kan kun være primtal for q = 2 n. Pierre de Fermat (1601(?) 1665) påstod i 1640 i et brev til Marin Mersenne (1588 1648), at tallene F n = 2 2n +1 var primtal for hvert naturligt tal n: F 0 = 3, F 1 = 5, F 2 = 17, F 3 = 257, F 4 = 65537 er alle primtal, men (Euler 1732) F 5 = 4294967297 = 641 6700417, og F 6, F 7,... er også sammensatte. 2 q 1 kan kun være primtal for q primtal. Mange af Mersenne-tallene M n = 2 n 1 er primtal, og blandt dem de største kendte primtal (den 26. februar 2005: 2 25964951 1). Wilsons sætning: n > 1 er primtal (n 1)! 1 (mod n). Fermats lille sætning: For primtal p vil p a a p 1 1 (mod p). Antallet af primtal n er omtrentligt n ln n. 3

Primtalsundersøgelse Prime(n) n er et primtal Prøv at dividere n med de ulige tal 3, 5,..., n (eksponentiel tid). Prime co N P Pratt (1975): Prime N P Manindra Agrawal, Neeraj Kayal, Nitin Saxena (2002): Prime P Faktisk at finde divisorer i n synes at have meget større kompleksitet end at afgøre, hvorvidt n er sammensat. 4

Stokastisk primtalstest Lad n være et ulige tal 3 og t være den ulige del af n 1, det vil sige n 1 = 2 s t, hvor s er hel og t er ulige. Vi vil så sige, at et heltal b, 0 < b < n, er et stærkt indicium for, at n er et primtal, hvis gcd(b, n) = 1 (b t 1 b t 1 (mod n) b 2t 1 b 22t 1... b 2s 1t 1 (mod n)) Hvis n er et ulige primtal, vil alle tallene b, 0 < b < n, være stærke indicier for det. Sætning (Rabin): Hvis n er ulige og sammensat, vil højst 25% af tallene b, 0 < b < n, være stærke indicier for, at n er et primtal. Miller-Rabins Monte-Carlo-metode til primtalstest (med fejlsandsynlighed 25%): s := 0; t := n 1; while even(t) do s := s + 1; t := t div 2 od; Vælg et tilfældigt b, 0 < b < n; if gcd(b, n) > 1 then return sammensat; a := b t mod n; if a = 1 then return måske primtal; to s do if a = n 1 then return måske primtal; a := a 2 mod n od; return sammensat 5

Deterministisk primtalstest I polynomiumsringen Z n [x] vil der for et helt tal a, hvor gcd(a, n) = 1, gælde (x + a) n = x n + a hvis og kun hvis n er et primtal. For at reducere antallet af led på venstre side betragter man i stedet (x + a) n = x n + a (mod x r 1) i Z n [x] og det blev vist, at hvis dette stemmer for et passende r og et vist antal a er, er n et primtal, og at størrelsen af r og antallet af a er kan begrænses af et polynomium i log n. Beviset sikrer en køretid på O((log n) 16.5 ). 6

Sierpinskis kurve Grænsekurven udfylder et kvadrat. En tegneposition har et punkt og en retning: ; zig og zag tegner fra til : zig zag Rekursiv opbygning af zig n: zag n 2 zig n 2 zig n 2 zag n 2 7

Mundtlig opgave Opgave til mundtlig gennemgang torsdag den 31. marts (Kapitel 50 opgave 1): I et mørkt rum er der to krukker bolsjer. I den ene er der appelsinbolsjer, i den anden halvt appelsinbolsjer og halvt lakridsbolsjer. Hvor mange bolsjer skal man spise for at kunne skelne mellem de to krukker med 99%s sikkerhed? Skriftlig opgave Opgave til skriftlig aflevering torsdag den 31. marts: Skriv et program, som udtegner Sierpinskis kurve. Valg af programmeringssprog og tegnesystem overlades til opgaveløserne, men vælger man at skrive et SML-program, hvis resultattekst kan gives som kilde til LAT E X, kan programskitsen på næste side benyttes: 8

fun putline (x,y,dx,dy) = "\\put(" ^ tiltekst x ^ "," ^ tiltekst y ^ "){\\line(" ^ tiltekst dx ^ "," ^ tiltekst dy ^ "){1}}\n"; fun drawzig 1 (x,y,dx,dy) = (putline (x,y,~dy,dx) ^ putline (x-dy,y+dx,~dx,~dy), (x-dy-dx,y+dx-dy,~dx,~dy)) drawzig n tp = let val (to1,tp1) = drawzig (n div 2) tp val (to2,tp2) = drawzag (n div 2) tp1 val (to3,tp3) = drawzig (n div 2) tp2 val (to4,tp4) = drawzag (n div 2) tp3 in (to1^to2^to3^to4,tp4) end and drawzag..... ; fun sierpinski n = let val (to,tp) = drawzig n (0,0,0,~1) val (to,_) = drawzig n tp in "\\documentclass{article}\n\ \\\begin{document}\n\ \\\setlength{\\unitlength}{10pt}\n\ \\\begin{picture}(32,32)\n" ^ to ^ to ^ "\\end{picture}\n\\end{document}\n" end; 9

Værdien af print (sierpinski 16); videregives til et LAT E X-system. Særligt interesserede kan løse opgave 1 i kapitel 24, det vil sige modificere programmet, så kurven ikke får dobbeltpunkter, men tegnes med afskårne eller afrundede hjørner. 10