Hey ihr! Ich hab da nen Problem einen Zufallsgenerator in Win32 Assembler umzusetzen. Dabei geht es mir nicht um kryptografisch sichere Zufallszahlen, es reicht mir vollkommen wenn die generierten Zahlen sich von Programmstart zu Programmstart unterscheiden. Mein bisheriger Ansatz war einfach die GetTickCounts API zu benutzen, aber das Problem ist das sich diese "Zufallszahl" nur einmal pro ms ändert, ich aber mehrere Zufallszahlen pro ms brauche. Danach habe ich versucht einen "lineareren Kongruenzgenerator" (http://de.wikipedia.org/wiki/Linearer_Kongruenzgenerator) zu implementieren, mit der Rückgabe von GetTickCounts als ersten Seed. Aber leider wähle ich entweder die ganze Zeit ungünstige Parameter oder mein Code weist irgendwo einen fundamentalen Fehler auf (ich fürchte ich runde zu großzügig aber wenn ich das nicht mache kann es vorkommen, dass bei der Division die Register zu klein sind und mein Programm abstürzt). Ich muss dazu sagen, dass es mein erstes Projekt in Win32 Assembler ist, davor habe ich Assembler nur für AVRs programmiert. Als erstes würden mich alle Informationen, wenn möglich Sources interessieren die sich damit beschäftigen einen einfachen (pseudo-)Zufallsgenerator in ASM umzusetzen. Wenn ihr noch andere innovative Ideen entwickelt habt wie ich einen einfachen Zufallsgenerator umsetzen könnte sind die natürlich auch gerne willkommen ;D Achja, nur für den Fall, dass ihr euch tatsächlich meinen Quälcode antun wollt kann ich den natürlich auch noch posten, aber wie gesagt ist es mein erstes Win32 Assembler Projekt also erwartet nicht allzu viel von meinem Code, vieles ist halt noch sehr unschön gelöst.
Aus den "Numerical Recipes", 7.1, Quick and Dirty Generators - An Even Quicker Generator. Ist zwar in C, jedoch so einfach, dass eine Umsetzung in ASM trivial ist. -------------------------------------------- unsigned long idum; ... idum = 1664525L*idum + 1013904223L; -----------------------------------------------
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.