gaanz laaang

Jeder von euch kennt sicher diese Weltrekordversuche in Sachen neue Primzahlen finden.

Jetzt interressiert mich welcher Variablentyp für sowas verwendet wird und ob das mit meinen jetztigen Programmierkenntnissen (zz nur C-Konsole) realisierbar wäre, und natürlich wie.

Auch wenn es mit meinem Wissen nicht machbar sein sollte, wäre es nett von euch, mir mal zu erklären, wie man mit ein paar Mio Stellen rechnen kann.

mfg CusHi
 
also das kannst du ganz schnell wieder vergessen. du denkst da in falschen dimensionen.
für solche berechnungen wird nicht ein pc verwendet, sondern riesige cluster-farmen. und da wird auch nicht mit c++ o.ä. gearbeitet, das wäre viel zu langsam. da werden assambler-ähnliche sprachen benutzt. des weiteren sind sehr gute mathematikkenntnisse nötig, um möglicht effiziente algos zu entwickeln (mit einer do...while-schleife kommst du da nicht weit; ) )

mfg,
pacman.
 
Hallo,
also ob du jetzt für eine selbst definierte 8-Bit Zahl die nötigen Algorithmen zur Addidition,Subtraktion schreibst (Ist bei 8 Bit noch überschaubar,und vergleichbar),
oder aib diese Zahl dann 16,32,64 oder von mir aus 1024 Bit hat ist eigendlich,
bis auf die Speicherverwaltung vielleicht,relativ egal.
Wen du das Prinzip verstanden hast 2 8-Bit Zahlen selber zu addieren und diese in einer andern 8 Bit Zahl zu speichern,ist der Rest nicht besonders schwer.

Es gibt für C auch fertig definierte Klasssen die so was können.

mfg
Peter
 
für solche berechnungen wird nicht ein pc verwendet, sondern riesige cluster-farmen. und da wird auch nicht mit c++ o.ä. gearbeitet,

Das Problem tritt überall dort auf wo mit sehr grossen Zahlen gearbeitet wird, die normale datentypen nicht fassen. Jede cryptolib/software muss ddieses Problem Lösen.
THeoretisch kannst du so grossze Zahlen verarbeiten wie in deinen Speicher passen (nach abzug vom speicher der für die aufgabe verwendet wird).
Du musst in jedem Fall tierisch Plan von speicherarithmetik haben!
http://numbers.computation.free.fr/Constants/Algorithms/fft.html

Ein gutes BUch welches aber eben solche Probleme beschreibt und auch code in c, c++ und asm mitringt ist "kryptografie in C und C++" von MIchael Welschenbach und besonders "The art of computer programming Vol. 1" von Knuth. Da hats Grundlagen ohne ende.

Aber wie erwähnt kannst du dir auch diverse libs besorgen die mit übergrossen zahlen arbeiten.
UNd noch etwas code + info:
http://www.cs.sunysb.edu/~skiena/392/lectures/week5/

mfg
 
also erstmal danke für alle antworten :D

@pacman: ich hatte auch nicht vor etwas in diesen dimensionen zu machen. die vorraussetzungen dafür kenne ich natürlich. mich hat einfach interessiert wie es genau funktioniert. ich hätte damit sicherlich herumexperimentiert, aber das mit diesen wettbewerben war nur ein bsp. ;)

mfg CusHi
 
Zurück
Oben