AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Random auf Win64

Ein Thema von Progman · begonnen am 29. Jun 2011 · letzter Beitrag vom 29. Jun 2011
Antwort Antwort
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Random auf Win64

  Alt 29. Jun 2011, 15:58
Vorgeschichte: Ein in Delphi 2007 geschriebenes Programm beinhaltet Funktionen, die aus einer Liste einen zufälligen Eintrag auswählen Random(Liste.Count) . Dies geschieht mehrmals, so dass eine neue Liste entsteht mit diesen zufälligen Einträgen.
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?
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#2

AW: Random auf Win64

  Alt 29. Jun 2011, 16:23
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Random auf Win64

  Alt 29. Jun 2011, 16:29
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.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe
Online

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.034 Beiträge
 
Delphi 12 Athens
 
#4

AW: Random auf Win64

  Alt 29. Jun 2011, 16:33
dass es bei dem Tester mit seinem 64-Bit-Rechner ein Zufall war

random
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.012 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Random auf Win64

  Alt 29. Jun 2011, 16:53
Dann war es wohl Zufall, dass die Zufälle zufällig dieselben waren?
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#6

AW: Random auf Win64

  Alt 29. Jun 2011, 17:15
Dann war es wohl Zufall, dass die Zufälle zufällig dieselben waren?
Hehe, so kann man es beschreiben.
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
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
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#7

AW: Random auf Win64

  Alt 29. Jun 2011, 17:41
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

AW: Random auf Win64

  Alt 29. Jun 2011, 18:01
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.
Andreas
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#9

AW: Random auf Win64

  Alt 29. Jun 2011, 18:30
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.
Nein, das ist nicht das Problem. Die Fragen werden in eine Liste kopiert, dort die zufälligen gezogen und gelöscht. Innerhalb einer Prüfung kann nicht die gleiche Frage nochmal vorkommen.
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
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.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
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