![]() |
Re: Random ist kein reiner Zufall
Wieso soll denn das 'zufälliger' sein? :gruebel: Hast Du das getestet? Und wenn ja, wie?
|
Re: Random ist kein reiner Zufall
nun versuch ichs mal damit:
Delphi-Quellcode:
1. Frage: ich weiss nun, dass Push den wert im stack abspeichert.
procedure _RandInt;
asm { ->EAX Range } { <-EAX Result } PUSH EBX {$IFDEF PIC} PUSH EAX CALL GetGOT MOV EBX,EAX POP EAX MOV ECX,[EBX].OFFSET RandSeed IMUL EDX,[ECX],08088405H INC EDX MOV [ECX],EDX {$ELSE} XOR EBX, EBX IMUL EDX,[EBX].RandSeed,08088405H INC EDX MOV [EBX].RandSeed,EDX {$ENDIF} MUL EDX MOV EAX,EDX POP EBX end; überschreibt push eax nun push ebx oder gibts für beide register nen einzelnen stack? 2. Frage: "call getgot" ich weiss was call ist, aber was ist getgot? 3. Frage: [EBX].Randseed: was ist das? hat der register Ebx noch unterregister oder wie? |
Re: Random ist kein reiner Zufall
Oh Mann, das erste OT-Thema ist beendet und gleich fängt das nächste an. Aber nun gut.
Zitat:
![]() Zitat:
Du musst bedenken, dass entweder der Code zwischen
Delphi-Quellcode:
und
{$IFDEF PIC}
Delphi-Quellcode:
oder der zwischen
{$ELSE}
Delphi-Quellcode:
und
{$ELSE}
Delphi-Quellcode:
durchgeführt wird, abhängig davon, ob "PIC" (was auch immer das heißt) definiert ist. Auf meinem PC ist PIC jedenfalls nicht definiert.
{$ENDIF}
Zitat:
|
Re: Random ist kein reiner Zufall
Zitat:
Bei dem pseudo Zufallsgeneratoren wie der in Delphi, welche nur rein mathematisch arbeiten gibt es immer eine ganz bestimmte Zahlenfolge, welche erstellt wird und Randomize setzt nur den Anfang innerhalb dieses Zahlenspektrums. Nun wird durch den Einsatz einer programmunabhängigen Variable (z.B. der Zeit) von diesem kontinuierlichem Zahlenstrom ständig "unvorhersehbar" abgewichen. Theoretisch wäre es ja möglich mit einer ausreichenden Anzahl aufeinanderfolgender Werte die Nachfolgenden zu berechnen (vorallem wenn man schon den Algotirhmus kennt). Ich hab bei "meinem" Code auch extra nur ein Bit der Formel verändert, da diese schon eine schöne Verteilung der "Zufallszahlen" bietet und ich dieses nicht zerstören wollte. Wenn man viele Zufallszahlen in kürzester Zeit (< 10 ms) berechnen möchte, dann sollte man allerdings etwas schnelleres als GetTickCount verwenden. Hab GetTickCount nur verwendet, da dieses leicht/schnell auslesbar und vorallem in einer schönen Größe (32 Bit) ist. |
Re: Random ist kein reiner Zufall
du weisst aber schon, dass 'n zufallszahlengenerator, überhaupt nix wert ist, wenn man den zufall nicht reproduzieren kann????!!!
|
Re: Random ist kein reiner Zufall
nun denke ich, dass genau das genau das Thema ist, worums hier geht
ich will ja verstehen, woher meine Ergebnisse kommen und dafür möchte ich verstehen, wie Random programmiert ist Zitat:
|
Re: Random ist kein reiner Zufall
Zitat:
Wieso sollte also in "Zufallsgernerator", der genau das macht, nichts wert sein? Schließlich nimmt man ja einen "Zufallsgerneraor", damit man nicht reproduzierbare/zufällige Werte bekommt. [add] @dino Zitat:
|
Re: Random ist kein reiner Zufall
oh sehr interessant danke himitsu, das wusste ich nicht
bleibt nurnoch die Frage, was IFDEF PIC heisst |
Re: Random ist kein reiner Zufall
:shock: wollt grad auf $IFDEF in der OH verweisen, aber meine D4/D7-Hilfe kennt dat nicht ... zum Glück hab'sch nochmal nachgesehn :stupid:
{$IFDEF PIC} prüft einfach ob das Symbol PIC vorher definiert wurde ... z.B. per {$DEFINE PIC}, welches in [oh]$DEFINE[/oh] beschrieben wird. PS: der Text da Oben ist unter [oh]$[/oh] zu finden :angel: |
Re: Random ist kein reiner Zufall
öhm ob PIC vorher Definiert wurde...
Im Programm oder wo? oder wer oder was Definiert sowas? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz