Mein Raspberry Pi hat eine neue Beschäftigung, ich hatte heute Abend spontan mal Lust ihn an die Grenzen zu treiben und schauen wann er aufgibt. Deshalb habe ich ein PHP-Script geschrieben was Primzahlen überprüft. Angefangen von 1 checkt er alle 5 Minuten jetzt immer 3000 Stück. Im 4 stelligen Bereich geht es noch recht flott, bin gespannt wann die 5 Minuten nicht mehr ausreichen das der Cronjob zu Ende läuft und er den nächsten schon startet.
Und außerdem mag ich wissen wie viel Primzahlen es gibt :) – naja ist etwas „ambitioniert“ mit einem Raspberry Pi2, zumal da schon große Computer mit viel schnelleren Sprachen schon im Nichtaussprechbaren Bereich Zahlen gecheckt haben. Ich mach es zumindest solange bis die Datenbank überläuft.
Nach Hashes nun Primzahlen… danach sollte aber nun mal langsam wirklich die Image-Geschichte dran kommen. Mathematik und Informatik sind schon etwas wunderbares, abbilden von Realität und Surrealität.
Was macht man dann mit soviel Primzahlen? Vielleicht ein T-Shirt? … ein Primzahlen-Poster wäre auch nice für unseren IT-Raum, Chef meinte eh wir sollen uns mal was zum dekorieren aussuchen.
UPDATE 1 (2016-07-23 10:39 Uhr): Wir haben derzeit alle Zahlen bis 410686 auf Primzahlen geprüft und präsentieren hier die letzten 100 Primzahlen:
409463; 409471; 409477; 409483; 409499; 409517; 409523; 409529; 409543; 409573; 409579; 409589; 409597; 409609; 409639; 409657; 409691; 409693; 409709; 409711; 409723; 409729; 409733; 409753; 409769; 409777; 409781; 409813; 409817; 409823; 409831; 409841; 409861; 409867; 409879; 409889; 409891; 409897; 409901; 409909; 409933; 409943; 409951; 409961; 409967; 409987; 409993; 409999; 410009; 410029; 410063; 410087; 410093; 410117; 410119; 410141; 410143; 410149; 410171; 410173; 410203; 410231; 410233; 410239; 410243; 410257; 410279; 410281; 410299; 410317; 410323; 410339; 410341; 410353; 410359; 410383; 410387; 410393; 410401; 410411; 410413; 410453; 410461; 410477; 410489; 410491; 410497; 410507; 410513; 410519; 410551; 410561; 410587; 410617; 410621; 410623; 410629; 410651; 410659; 410671;
Die Prüfungsdauer lag, im Falle von 410671 bei 0.000710964 Sekunden, dabei mussten 640 Berechnungen durchgeführt werden um die Zahl als Primzahl zu identifizieren. Für derzeit 3000 Zahlenprüfungen, braucht der Rasperry Pi2 ~ 29,0296 Sekunden.
UPDATE 2 (2016-07-23 11:10 Uhr): Zur Erhebung detaillierterer Daten, habe ich die Berechnungen nochmal auf 1 zurückgesetzt. Nun wird zusätzlich noch die Anzahl der Checkups geloggt + Gesamtzeit eines Cycles sowie die Startzahl geloggt. So kann man später einen hübschen statistischen Graphen erstellen.
UPDATE 3 (2016-07-25 20:52 Uhr): Die aktuelle Primzahl ist 10324711 und hat 3213 Überprüfungen gefordert. Insgesamt haben alle Checks dieser einzelnen Zahl 0.00327897 Sekunden gedauert. In der Zwischenzeit braucht der kleine Pi für ein 15.000er Cycle ca. 249 Sekunden. Wenn das so weiter geht muss ich die 5 Minuten-Taktung (300 Sekunden) zurück nehmen oder auf 10.000 Pakete zurücksetzen. Ich denke am wahrscheinlichsten ist Letzteres.
685487 Primzahlen befinden sich jetzt schon in meinem Besitz ;-)
UPDATE 4 (2016-08-01 20:24 Uhr): Die letzte Primzahl ist 40857469. Derzeit befinden sich 2.636.632 Primzahlen in der Datenbank. Für einen Cycle von 20.000 Primzahlen braucht der Pi ~420 Sekunden. Die Zahl 40.857.469 brauchte 6391 Überprüfungen und dies dauerte 0,00646687 Sekunden.
23. Juli 2016 um 08:47 Uhr
Das wäre eigentlich auch eine klasse Benchmarkidee für CPUs. Das ganze müsste man dann natürlich in C# schreiben und dort dann die Checkups in einer bestimmten Zeit tracken. Wieviel Primzahlen kann ein I7 wohl in 5 Minuten überprüfen? :)