Forum: Programmieren allgemein
by isilive,
20. Mär 2011
Also, das ganze hier ist sehr interessant zu lesen. Aber da ich nicht Andrew Wiles heisse, steige ich hier aus :-D Mein Vorschlag: Vielleicht kennst du jemanden, der dir das ganze auf CUDA schreiben kann. Ich denke man kann den Algorithmus gut parallelisieren (?).
Forum: Programmieren allgemein
by isilive,
19. Mär 2011
var
Form1: TForm1;
Liste: TStringList;
count,c,g,u: int64;
k6,k7,k8:int64;
h6,h7,m6: int64; // die können Integer vielleicht überschreiten!
i:byte;
s0,s1,s2,s3,s4,s5,s6,s7,s8: byte;
FRun : Bool;
Forum: Programmieren allgemein
by isilive,
19. Mär 2011
if u=30 then begin
i:=1; c:=count; g:=g+1;
s0:=0; s1:=0; s2:=0; s3:=0; s4:=0; s5:=0; s6:=0; s7:=0; s8:=0;
c:= (3*c +1) div 2;
repeat
if not odd(c) then
begin
c:=c div 2;
if i=1 then s0:=0;
Forum: Programmieren allgemein
by isilive,
19. Mär 2011
Ich denke auch, dass man unbedingt Ganzzahltypen verwenden sollte!
Weiters wäre odd(x) eine schöne Funktion um auf ungerade zu testen. Vielleicht ist sie auch schneller.
if odd(trunc(c)) then
begin c:=(3*c+1)/2; u:=u+1; end
else
c:=c/2;
Ist das Absicht, dass nur nur ganz wenige Fälle untersuchst. Nämlich wenn es genau 30mal ungerade war. In den...