AGB  ·  Datenschutz  ·  Impressum  







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

Randomize mehrmals starten

Ein Thema von Chrissi91 · begonnen am 28. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
Seite 1 von 3  1 23      
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Randomize mehrmals starten

  Alt 28. Nov 2007, 20:13
Hi,

endlich mal ein Thema, das es laut Suche noch nicht in der DP gab.

Unser Infolehrer hat behauptet, dass es nicht gut sei, mehrmals Randomize; zu schreiben.

Wie sieht es aus? Stimmmt das? Ich denke das is dem PC egal. ^^
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

Re: Randomize mehrmals starten

  Alt 28. Nov 2007, 20:16
Wozu den Zufallsgenerator mehrmals starten? Wenn mein Auto läuft, lass ich den Anlasser auch in Ruhe.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#3

Re: Randomize mehrmals starten

  Alt 28. Nov 2007, 20:18
Es ist nicht gut. Wenn du das mehrmals machst, wird der Zufallsgenerator mehrmals neu initialisiert, und da Randomize auf Basis von GetTickCount und damit im Millisekunden-Bereich arbeitet... Nun, am besten ein Beispiel.
Delphi-Quellcode:
var a: Integer;

Randomize;
a := Random(1000);
Randomize;
a := a - Random(1000);
a wird nahezu immer 0 sein, da der Zufallsgenerator zwei mal initialisiert wird, und dies wahrscheinlich mit dem selben Seed (4 Calls brauchen keine Millisekunde)...
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Randomize mehrmals starten

  Alt 28. Nov 2007, 20:19
Hi

Dem PC ist das sicherlich egal

Aber:
Der Zufallszahlengenerator erzeugt eine gleichverteilte Reihe von Zufallszahlen, ab einem bestimmten Startwert.
Wenn dieser Startwert gleich ist, kommt auch immer die gleiche Reihe heraus. Das kann man leicht nachprüfen, indem man Randomize nicht aufruft.

Wenn jetzt innerhalb der Reihe Randomize erneut aufgerufen wird, wird praktisch eine neue Zufallsreihe begonnen, die die Gleichverteilung der ersten Reihe umwerfen KÖNNTE.
Ich sage KÖNNTE, nicht muss.

Wenn man es also statistisch ganz genau nehmen will, so sollte man Randomize nur einmal aufrufen.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Randomize mehrmals starten

  Alt 28. Nov 2007, 21:14
Zitat von Dax:
... Randomize auf Basis von GetTickCount
GetSystemTime, um genau zu sein, kommt aber aufs Gleiche raus.

Mit dem Zufall ist das ja so eine Sache. Ich würde sagen, der Lehrer hat Recht, sich aber nicht 100% korrekt ausgedrückt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Randomize mehrmals starten

  Alt 28. Nov 2007, 21:36
Und das Thema hatten wir schon im Forum: Hier im Forum suchenrandomize.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Randomize mehrmals starten

  Alt 29. Nov 2007, 18:29
Der Lehrer hätte euch auch den Grund dafür nennen können.

Du kannst Randomize aufrufen aber nicht hintereinander, zeitversetzt...
z.b. bei einem Spiel rufst du einfach Randomize alle 60 Sekunden auf... oder so....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Randomize mehrmals starten

  Alt 29. Nov 2007, 18:33
Zitat von mimi:
z.b. bei einem Spiel rufst du einfach Randomize alle 60 Sekunden auf... oder so....
wozu soll das gut sein? Damit der Zufall noch zufälliger wird?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Randomize mehrmals starten

  Alt 29. Nov 2007, 19:05
Du hast es erfasst *G*, ob es sin macht oder nicht ist ja eine andere Frage, aber es währe eine Möglichkeit.... oder nicht ?
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.057 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Randomize mehrmals starten

  Alt 29. Nov 2007, 19:22
Zitat von alzaimar:
Zitat von mimi:
z.b. bei einem Spiel rufst du einfach Randomize alle 60 Sekunden auf... oder so....
:gruebel: wozu soll das gut sein? Damit der Zufall noch zufälliger wird?
Das ist gut, weil man sonst (wenn Randomize nur einmal aufgerufen wird) unter bestimmten Voraussetzungen ohne große Probleme vorhersagen kann, welches die nächste "Zufallszahl" ist, wenn die ersten paar "Zufallszahlen" bekannt sind.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 02:59 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