![]() |
Random auf Win64
Vorgeschichte: Ein in Delphi 2007 geschriebenes Programm beinhaltet Funktionen, die aus einer Liste einen zufälligen Eintrag auswählen
Delphi-Quellcode:
. Dies geschieht mehrmals, so dass eine neue Liste entsteht mit diesen zufälligen Einträgen.
Random(Liste.Count)
Nach mehrmaligem Aufrufen kommt es vor, dass sehr oft die gleichen Einträge wie vorher erscheinen, obwohl ich beim Programmstart einmalig Randomize aufrufe. Auf 32-Bit-Systemen passiert das nicht. Nur auf vereinzelten 64-Bit-Systemen. Kann es daran liegen? Sollte ich mir lieber eine eigene Random-Function bauen? :) |
AW: Random auf Win64
Am Random sollte sich rein garnichts verändern.
Dei Delphi-Programm ist und bleibt 32-bitig, auch auf einem 64 Bit-System. In Delphi wird ein Pseudozufallsgernerator verwendet, welcher sich nicht verändert, da er direkt in dein Programm eingebunden ist und somit immer mit 32 Bit läuft. Wenn sich also etwas bei der Berechnug ändert, je nach Betriebssystem, dann würde ich mir hier sehr große Sorgen machen. Der Pseudozufallsgernerator ist einfach nur eine mathematische Formel und diese sollte immer das selbe Ergebnis liefern. |
AW: Random auf Win64
Ja, das dachte ich mir ja auch.
Jetzt hat sich aber herausgestellt, dass es bei dem Tester mit seinem 64-Bit-Rechner ein Zufall war, dass (es geht um Simulation von Führerscheinprüfungen) bei ihm bei neu generierten Prüfungen sich mehrmals einige Fragen wiederholt haben. |
AW: Random auf Win64
Zitat:
![]() random |
AW: Random auf Win64
Dann war es wohl Zufall, dass die Zufälle zufällig dieselben waren? :lol:
|
AW: Random auf Win64
Zitat:
Zur Erläuterung: Es geht um die Neuauflage des Programms "Europa-Führerschein 2012" und in einigen Tagen ist Termin im Presswerk, damit es rechtzeitig in den Handel kommt. Nun sitzen bei unserem Publisher Leute daran und testen es nochmal richtig durch. Und bei einem trat dieser Effekt auf und er hat mich sofort ganz aufgeregt angerufen 8-) Nun hat sich aber herausgestellt, dass es eben tatsächlich ein Zufall war, dass mehrmals die gleichen Fragen in aufeinander folgenden Prüfungssimulationen vorkamen. Das kann bei realen Prüfungen ja auch vorkommen. Die Anzahl der Fragen ist nun mal begrenzt :lol: |
AW: Random auf Win64
Jupp, man bedenke, daß bei dir die 32 Bit Zufallswerte auf einen geringeren Bereich runtergerechnet werden, oder hast du zufällig 4 Milliarden Fragen zur Verfügung?
Und bei einem so kleinem Wertebereich kann sich schnell mal etwas wiederholen, wenn man nur wenige aufeinanderfolgende Werte betrachtet, welches insgesamt und über größere Strecken aber dann doch nicht mehr so gleich ist. |
AW: Random auf Win64
Mir scheint, dass hier das Prinzip "Ziehung ohne zurücklegen" nicht angewandt wurde.
Sagen wir mal, es gibt einen Fragenkatalog mit 30 Fragen. Jetzt wird zufällig eine Frage zwischen 1 und 30 ausgewählt. Diese Frage muss natürlich aus dem Fragenkatalog entfernt werden, damit es völlig unmöglich wird, dass die gleiche Frage nochmals drankommt. Nach der 1. Frage sind also nur noch 29 Fragen im Fragenkatalog. usw. |
AW: Random auf Win64
Zitat:
ABER bei der nächsten Generierung einer Prüfung muss ich die Fragen wieder aus der Original-Liste kopieren, sonsr wäre ja nach der fünften oder sechsten Prüfung keine Frage mehr da :P Und der Fragenpool ist begrenzt, zumal die einzelnen Fragen bestimmten Bedingungen genügen müssen. Ein Beispiel: Zu einem bestimmten Themengebiet gibt es 8 Fragen, davon müssen 4 ein Bild enthalten und die Gesamtfehlerpunktzahl dieser 8 Fragen muss 32 sein. Da diese Prüfung als nicht bestanden gilt, wenn mehr als 10 Fehlerpunkte erreicht sind oder zwei Fragen mit 5 Fehlerpunkten falsch waren, muss ich in diese 8 Fragen (insgesamt sinds ja zw. 20 und 40, je nach Klasse) mindestens eine Frage mit 5 Punkten unterbringen. Das heißt, 32 durch 8 ergibt 4, also um eine Frage mit 5 Punkten drin zu haben, muss eine andere mit 3 Punkten sein. Der Rest kann 4 Punkte haben. Dieses Themengebiet enthält ca. 60 Fragen. Nun sind Fragen mit 5 Punkten nicht sehr häufig im Fragenkatalog, also muss man damit rechnen, dass sie sich in aufeinanderfolgenden Prüfungssimulationen durchaus mal wiederholen können. :P |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:39 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 by Thomas Breitkreuz