![]() |
Random(2) in schnell
Hi,
Ich habe ein Programm in dem ich sehr oft eine 1:1 wahrscheinlichkeit berechnen muss. nun stehe ich vor dem Problem das Random(2) vermutlich den größten Teil meiner Laufzeit in Anspruch nimmt....was etwas unbefriedigend ist. Das Problem ist dass ich nicht genau testen kann wieviel Random in anspruch nimmt, da die benötigten Durchläufe direkt vom ergebnis von Random abhängen. Wenn ich also immer 1 nehme ist mein Programm zwar sofort durch, hat aber auch nur einen winzigen Bruchteil an durchläufen gehabt, wenn ich 0 nehme ist es eine endlosschleife. Nun stellt sich natürlich die Frage nach alternativen... Ich habe es bereits mit GetTickCount (Auflösung zu gering), QueryPerformanceFrequency (Nicht zufällig genug??? jedenfalls ne endlosschleife) und Mouse (u.ä. auch net zufällig genug) versucht...reicht aber alles nicht. Was gäbe es noch an Alternativen? |
Re: Random(1) in schnell
Wenn du "Random(1)" machst kannst du auch gleich 0 schreiben. Schau dir am besten mal die hilfe zu random an.
|
Re: Random(1) in schnell
Zitat:
|
Re: Random(2) in schnell
Nur eine Idee... generiere eine Zufallszahl, mehrere Bytes, und speichere die Bitfolge in meinetwegen einem Array of Boolean. Das Array berechnest du dann halt alle 32, 64, whatever Durchläufe neu.
|
Re: Random(2) in schnell
Zitat:
Das hat mich immerhin schonmal von 43 auf 36 Sekunden gebracht bei einem 32Bit Integer als Zwischenspeicher... Nicht schlecht :thumb: Leider scheint Random kein Int64 zu unterstützen :? Sonst irgendwelche Ideen? |
Re: Random(2) in schnell
Benutz doch jeweils einen QPC-Ergebniswert als Quelle für 64 Bits. Oder benutz einen
![]() |
Re: Random(2) in schnell
Zitat:
Der Mersenne Twister hört sich interessant an... Gibt es von dem eine Implementation in Delphi? *zu negaH schiel :wink: * |
Re: Random(2) in schnell
QPC ist QueryPerformanceCounter.
|
Re: Random(2) in schnell
Zitat:
Was willst du überhaupt machen? |
Re: Random(2) in schnell
Zitat:
dafür unterstützt es als Ausgabe 80Bit-Extended Werte :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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