AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi MersenneTwister Delphi Implementation?
Thema durchsuchen
Ansicht
Themen-Optionen

MersenneTwister Delphi Implementation?

Offene Frage von "WorstNightmare"
Ein Thema von WorstNightmare · begonnen am 26. Sep 2009 · letzter Beitrag vom 26. Sep 2009
Antwort Antwort
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#1

MersenneTwister Delphi Implementation?

  Alt 26. Sep 2009, 18:18
Hallo,

ich bin gerade an einer Stelle in meinem Programm, wo ich Zufallszahlen benötige, allerdings eignet sich das Random von Delphi dafür nicht soo gut (bei Random(999999) sind 20 Zahlen nacheinander immer größer als 200000, keine darunter ). Ein C++ Programm, welches den gleichen Zweck erfüllt und besser funktioniert, benutzt das MTRand von Boost. Ich habe hier einige Delphi Versionen von Mersenne Twister gefunden, allerdings sehen einige davon sehr komisch aus und keine stellt eine einfache Funktion wie NextInt(Range) bereit. Kennt jemand eine Version, die sowas von Haus aus kann?
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#2

Re: MersenneTwister Delphi Implementation?

  Alt 26. Sep 2009, 18:20
Hast du den Zufallszahlengenerator denn auch mit randomize; beim Programmstart initialisiert?
  Mit Zitat antworten Zitat
WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#3

Re: MersenneTwister Delphi Implementation?

  Alt 26. Sep 2009, 18:22
Natürlich hab ich das, sowas wäre mir schon aufgefallen
Der Delphi Zufallszahlengenerator ist generell ungeeignet.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

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

Re: MersenneTwister Delphi Implementation?

  Alt 26. Sep 2009, 18:31
Zitat von WorstNightmare:
(bei Random(999999) sind 20 Zahlen nacheinander immer größer als 200000, keine darunter ).
Ein Merkmal guter PRNG ist die Unvorhersagbarkeit. Hättest Du gedacht, das diese 20 Zahlen so geartet sind? Siehst Du? Genau das gleiche kann dir bei einem MT passieren. Genauso, wie Du beim Würfeln 20x die hintereinander 6 würfeln kannst, oder im Lotto die Zahlen 1,2,3,4,5,6 kommen könnten. Es ist eben zufällig und kann *alles* passieren. Der Delphi-PRNG ist schon ok und einigermaßen gleichverteilt. Er sollte für deine Bedürfnisse reichen (welche sind das?)

Hättest Du einen Zufallszahlengenerator, der garantiert keine 20 Zahlen in einer Reihe ausspuckt die alle größer als 200.000 sind, wäre es kein guter Zufallszahlengenerator.

PS: Hier findest Du eine einfach zu verwendende MT-Unit.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 03:18 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