AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zufallszahlen erstellen

Ein Thema von LPIG · begonnen am 7. Nov 2012 · letzter Beitrag vom 14. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2   
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#1

AW: Zufallszahlen erstellen

  Alt 7. Nov 2012, 22:50
Naja, theoretisch dürfte nicht alles schwarz sein - dann wäre es eine bijektive Funktion. Insofern schon fast zu gut gleichverteilt, aber das ist wohl auch Absicht: Man möchte ja nach möglichst geringer Samplezahl schon möglichst gleichverteilt sein. Bei "echtem" Zufall ist das Universum meist weniger gnädig glaub ich.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 06:35
Um es anders auszudrücken: Nehmen wir an, eine gute Zufallsfunktion sollte 'alles schwarz machen', weil die Zahlen perfekt verteilt sind. Gleichzeitig soll eine gute Zufallsfunktion gleichverteilte und 'nicht vorhersehbare' Zufallszahlen erzeugen.

So, wie Du dir das vorstellst ('alles schwarz') wäre das bei den letzten paar Pixeln so, das man genau wüsste, welche Zahlen als nächstes kommen (die weißen). Dann wäre aber o.g. Definition des Zufallszahlengenerators nicht erfüllt. Beweis durch Widerspruch: Die Behauptung 'alles schwarz => guter Generator' ist falsch.
  Mit Zitat antworten Zitat
Benutzerbild von Jonas Shinaniganz
Jonas Shinaniganz

Registriert seit: 30. Aug 2011
249 Beiträge
 
Delphi XE5 Ultimate
 
#3

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 07:37
Die Aufgabe ist als Programmier-Übung geeignet... Allerdings kann ich dir jetzt schon sagen: Was du da machst ist klassischer Martingale.
http://de.wikipedia.org/wiki/Martingalespiel

Aus der Warscheinlichkeitsrechnung: der Erwartungswert bleibt für den Spieler stets negativ.

Du gewinnst eine Einzelne Runde zwar zu: t ≈99,9713 % ABER um einen einzigen "beknackten" Euro zu gewinnen, setzt du teilweise schnell 2048€ oder falls du das Spiel auch verlierst, immernoch um den "Anfangseuro" zurückzugewinnen 4096€ und dann knapp 10.000€ um den Euro erneut "zu versuchen" zu gewinnen.

Die langen Farbfolgen im Roulette die mit unbarmherziger Warscheinlichkeit auftreten werden haben schon alle Zocker, die Ihren Einsatz erhöhen um den Verlust wieder wett zu machen, ruiniert. Das Casino freut sich über Leute die nach "Strategie" spielen. Egal welche "Strategie".

Grüße
Die Leiter der Entwicklungsabteilung dreht total am Mausrad!
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 17:37
Das Casino freut sich über Leute die nach "Strategie" spielen. Egal welche "Strategie".
Abgesehen vom Kartenzählen
EDIT: Ach verdammt ...
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG ( 8. Nov 2012 um 17:39 Uhr)
  Mit Zitat antworten Zitat
shmia

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

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 17:55
Die Roulette-Strategie des Verdoppelns bis man gewinnt ist "Quark".
10 Euro gesetzt -> verloren
20 Euro -> verloren
40 Euro -> verloren
80 Euro -> verloren
160 Euro -> gewonnen!!
Verlust: 10+20+40+80=150 Euro Gewinn:160 Euro
Nettogewinn: 10 Euro (also der 1. Einsatz)

Wenn man also max. den 1. Einsatz gewinnen kann, muss man diesen erhöhen denkt sich der "schlaue" Roulettespieler:
1000 -> gewonnen (Hurra)
1000 -> gewonnen (Glücksträhne, schon 2000 im Plus)
1000 -> verloren
2000 -> verloren
4000 -> verloren
8000 -> verloren
16000 ?? Ohoooh - das Geld reicht nicht mehr und schon 13000 verpulvert.
Und jetzt kommen auch noch zwei Rausschmeiser und sagen es wäre jetzt besser wenn man geht.
Andreas
  Mit Zitat antworten Zitat
LPIG

Registriert seit: 7. Nov 2012
5 Beiträge
 
#6

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 18:38
Die Roulette-Strategie des Verdoppelns bis man gewinnt ist "Quark".
10 Euro gesetzt -> verloren
20 Euro -> verloren
40 Euro -> verloren
80 Euro -> verloren
160 Euro -> gewonnen!!
Verlust: 10+20+40+80=150 Euro Gewinn:160 Euro
Nettogewinn: 10 Euro (also der 1. Einsatz)

Wenn man also max. den 1. Einsatz gewinnen kann, muss man diesen erhöhen denkt sich der "schlaue" Roulettespieler:
1000 -> gewonnen (Hurra)
1000 -> gewonnen (Glücksträhne, schon 2000 im Plus)
1000 -> verloren
2000 -> verloren
4000 -> verloren
8000 -> verloren
16000 ?? Ohoooh - das Geld reicht nicht mehr und schon 13000 verpulvert.
Und jetzt kommen auch noch zwei Rausschmeiser und sagen es wäre jetzt besser wenn man geht.
Das mag ja stimmen, ich möchte das taktische Roulette hier auf keinen Fall verfechten, mir geht es eigentlich nur um die Lösung für mein Problem mit Delphi. (;

lg
LPIG
  Mit Zitat antworten Zitat
shmia

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

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 18:59
mir geht es eigentlich nur um die Lösung für mein Problem mit Delphi.
Du hast bislang aber noch keinen Sourcecode gezeigt sondern nur bezüglich randomize herumtheoretisiert.

Delphi-Quellcode:
// liefert den Nettogewinn oder Verlust für eine Spielserie
function PlayRoulette(einsatz, maxeinsatz:Currency):Currency;
var
   win : Boolean;
begin
   Result := 0;

   repeat
      win := random(33) < 16;
      if win then
      begin
         Result := Result + einsatz;
         Exit;
      end;
      Result := Result - einsatz;
      einsatz := einsatz * 2; // verdoppeln...
   until win or (einsatz > maxeinsatz); // bis zum Gewinn oder bis das Limit überschritten ist
end;
Andreas
  Mit Zitat antworten Zitat
OmaH

Registriert seit: 14. Nov 2012
1 Beiträge
 
#8

AW: Zufallszahlen erstellen

  Alt 14. Nov 2012, 12:54
Ich möchte doch meinen Senf noch dazugeben. Ihr vergesst nähmlich das Zufall, Wahrscheinlichkeit und Computerprogramme 3 paar Schuhe sind. Ein C.P. kann Wahrscheinlichkeiten aber nie den Zufall brerchnen. Unser biologischer Computer kann mit der Ausage "eine zerdrückte 3" ohne weiteres was anfangen sogar damit rechnen. Ein Computer kann dies nicht. Random: Bei delphi wird der Inhalt einer Speicherstelle im Processor ausgelesen. Davon aus wird zu dem gewünschten Bereich hoch oder zurück gerechnet.Bei Randomitze wird mit der Systemzeit die Speicherstelle ausgesucht. Mit RandomSeed kann das mit der Hand gemacht werden. Dann kommen gleiche Reihen? Zahlen heraus. Probiert mal IF Random(100)< 50 aus Ihr werdet euch wundern. Um ein noch Zufälligeres Ergebnis zu bekommen ruft Random mit der höstmöglichen Integerzahl auf welche das Gerät verarbeiten kann. Dann werden die Rotienen von Delphi nicht benutzt. Bei gerade und ungerade auswertung nähert sich das Ergebnis immer näher an 100% an, erreicht es aber fast nie. Für Spiele empfehle ich, wie bei Spielautomaten einen gesteuerten Zufall zu benutzen. Das ist gerechter.
gruß Helga
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#9

AW: Zufallszahlen erstellen

  Alt 14. Nov 2012, 15:02
Ist es leider.

Ein C.P. [...]kann Wahrscheinlichkeiten aber nie den Zufall brerchnen.
Er kann Zufall simulieren, und genau dafür sind RNGs da, und darum geht's hier ja

Random: Bei delphi wird der Inhalt einer Speicherstelle im Processor ausgelesen.
Nein, es wird der Seed als Startwert für eine Funktion genommen, der eine sog. Reihe bildet. Die Reihenglieder der verwendeten Funktion sind dann statistisch gleichverteilt, und erwecken einen recht guten Eindruck von Zufall. Aber da liest keiner eine "Speicherstelle im Prozessor", was auch immer das sein soll.

Davon aus wird zu dem gewünschten Bereich hoch oder zurück gerechnet.
??

Bei Randomitze wird mit der Systemzeit die Speicherstelle ausgesucht.
Bei Randomize wird der Datums/Zeitwert als Integer gecasted und als Seed genommen.

Dann kommen gleiche Reihen? Zahlen heraus.
Gleicher Seed, gleiche Reihe, ja.

Probiert mal IF Random(100)< 50 aus Ihr werdet euch wundern.
Warum?

Um ein noch Zufälligeres Ergebnis zu bekommen ruft Random mit der höstmöglichen Integerzahl auf welche das Gerät verarbeiten kann. Dann werden die Rotienen von Delphi nicht benutzt.
Jetzt wird's ganz witzig. Hä? NOCH zufälliger? Ich denke ein Computer kann keinen Zufall. Und warum sollte dann nicht die Delphi-Funktion genommen werden?

Bei gerade und ungerade auswertung nähert sich das Ergebnis immer näher an 100% an, erreicht es aber fast nie.
Was zum Henker sind jetzt gerade und ungerade auswertungen? Was nähert sich 100% an, 100% wovon?

Für Spiele empfehle ich, wie bei Spielautomaten einen gesteuerten Zufall zu benutzen. Das ist gerechter.
Und was ist gesteuerter Zufall!?


Selten so viel Komisches Zeug gelesen, tut mir leid. Hier ist leider praktisch alles verkehrt.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#10

AW: Zufallszahlen erstellen

  Alt 8. Nov 2012, 08:14
Die Behauptung 'alles schwarz => guter Generator' ist falsch.
Ich denke der Satz ist missverstanden worden. "Theoretisch müsste alles schwarz sein" bezog sich darauf, dass genau so viele Durchläufe stattgefunden haben wie es Pixel gibt. Nicht drauf ob der Generator jeden der Pixel erwischt hat.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:42 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-2025 by Thomas Breitkreuz