hi Hagen,
jup, mit ähnlich meinte ich das die zahlen immer zwischen einer 2er potenz sind
also bei NRnd(Zahl,16); sind sie immer zwischen 32 000 und 65 000....
die zufallszahlen haben nichts mit verschlüsselung zu tun, sind nur für mathematische versuche
habe aber einen weg gefunden
ich lösche einfach das erste bit in der IInteger mit NCut
dann kommen ganz gute ergebnisse^^
hier mal ein beispiel:
ein memo und ein button auf form1 und los gehts^^
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Zahl,ZahlMin,ZahlMax: IInteger;
Count,Bits: Integer;
begin
Bits:=16;
NSet(ZahlMax,NNull);
NRnd(ZahlMin,Bits);
for Count:=1 to 100 do begin
NRnd(Zahl,Bits);
NCut(Zahl,Bits-1);
if NCmp(Zahl,ZahlMax)= 1 then NSet(ZahlMax,Zahl)
else if NCmp(Zahl,ZahlMin)= -1 then NSet(ZahlMin,Zahl);
Memo1.Lines.Add(NStr(Zahl,10));
end;
Memo1.Lines.Add('------------------------');
Memo1.Lines.Add('Kleinste: '+NStr(ZahlMin,10));
Memo1.Lines.Add('Größte: '+NStr(ZahlMax,10));
end;
und wenn ich das richtig verstanden habe brauche ich NRnd kein TRandom übergeben weil er dann automatisch das TRandom aus der RNG.Pas benutzt und das reicht für gute zufallszahlen?
mfg
Dano
PS: dein IInteger ist echt klasse