Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Random mit Dec (https://www.delphipraxis.net/129813-random-mit-dec.html)

cookie22 26. Feb 2009 01:17


Random mit Dec
 
hallo,

ich hab folgendes problem, ich möchte mir mit dec eine zufalls zahl ausgeben lassen und zwar so wie mit dem random von delphi.

im moment mach ich das so, was aber sehr unschön ist, hat jemand eine bessere idee.

Delphi-Quellcode:
function GetRandom(range: Byte): integer;
var
  i: Byte;
begin
  Result := -1;
  RandomSeed;
  repeat
    RandomBuffer(i, sizeof(i));
  until
    (i < range) and (i <> -1);
  Result := i;
end;
für alle tips wär ich dankbar.

Gruss,
cookie

sx2008 26. Feb 2009 02:53

Re: Random mit Dec
 
Delphi-Quellcode:
function GetRandom(range: Byte): integer;
var
  i: Cardinal;
begin
  // RandomSeed; // WEG, darf nur einmal aufgerufen werden
  RandomBuffer(i, sizeof(i));
  Result := i mod range;
end;

cookie22 26. Feb 2009 03:30

Re: Random mit Dec
 
vielen dank erst mal. :-D

warum darf ich randomseed nur einmal aufrufen?

mkinzler 26. Feb 2009 06:28

Re: Random mit Dec
 
Weil sich die Zufallszahlen sonst wiederholen würden

cookie22 26. Feb 2009 06:49

Re: Random mit Dec
 
der zufallsgenerator wird doch mit der aktuellen systemzeit bzw. anderen zufalls daten initialisiert, wie kann sich dann da was wiederholen? die voraussetzungen sind doch völlig anders. macht nicht gerade das nen cryptographisch sicheren random generator aus, dass sowas nicht passiert?

Luckie 26. Feb 2009 07:20

Re: Random mit Dec
 
Von Randomize weiß ich, dass man es nur einmal aufrufen sollte. Wie das mit RandomSeed ist, kann ich im Moment nicht sagen, da keine Delphihilfe zur Verfügung.

Billa 26. Feb 2009 07:22

Re: Random mit Dec
 
Ich sitze gerade nicht am Delphi-Rechner, aber ich würde sagen: Im Zweifel macht ein Versuch kluch ...

cookie22 26. Feb 2009 07:29

Re: Random mit Dec
 
es geht hier um das randomseed von dec 5.2. das ist doch ein yarrow random generator, da der cryptoraphisch sicher ist, sollte das eigentlich nix ausmachen. genau das unterscheidet ihn doch vom delphi randomize. oder sitze ich da einem irtum auf? :?

sx2008 26. Feb 2009 07:43

Re: Random mit Dec
 
Wenn man einen Zufallsgenerator hat, dann setzt man einmal den Anfangswert (Seed = Samen) und lässt ihn dann in Ruhe arbeiten.
Es spielt dabei keine Rolle, welcher Art der Zufallsgenerator ist; es ist immer das gleiche Prinzip.
Wenn man immer wieder die Initialisierung neu vornimmt, dann ist ja der Zufallsgenerator ausser Kraft gesetzt.

Meflin 26. Feb 2009 07:49

Re: Random mit Dec
 
Zitat:

Zitat von sx2008
Es spielt dabei keine Rolle, welcher Art der Zufallsgenerator ist; es ist immer das gleiche Prinzip.
Wenn man immer wieder die Initialisierung neu vornimmt, dann ist ja der Zufallsgenerator ausser Kraft gesetzt.

Wenn man mit konstanten Werten Seeded mag das ein Problem sein. Aber wenn du zum Beipsiel Umgebungsgeräsuche als Seed benutzt, kannste seeden so oft du willst - das tut überhauptkeinen Abbruch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz