AGB  ·  Datenschutz  ·  Impressum  







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

Zufallsfunktion

Ein Thema von Kharlanki · begonnen am 11. Jul 2007 · letzter Beitrag vom 12. Jul 2007
 
alzaimar
(Moderator)

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

Re: Zufallsfunktion

  Alt 12. Jul 2007, 07:03
Kharlaki, Du musst einen Fehler gemacht haben. Weiterhin sind es 11 Ereignisse (0..10) und dann erwartet man bei 10000 Durchläufen 909 Treffer. Passiert mir aber auch immer wieder.

Hier, schau mal;

1x Button, 1x Memo, Doppelklick auf Button und dann;

Delphi-Quellcode:
Procedure TForm1.Button1Click (Sender : TObject);
Const
  ccSamples = 1000000;
  
Var
  Tage : Array [30..60] Of Integer;
  iZufallstag, iSumme, iZaehler : Integer;

Begin
  FillChar (Tage, SizeOf (Tage), 0);
  For iZaehler:=1 to ccSamples do Begin
    iZufallsTag := 30 + Random (31); // <==== *blink* hier ist die magische Zufallsfunktion ;-)
    inc (Tage[iZufallsTag]);
    End;
  Memo.Lines.Clear;
  iSumme := 0;
  For iZaehler:= 30 to 60 do begin
    inc (iSumme, Tage[iZaehler]);
    memo.Lines.add(Format ('Tag %d: %d, %3.1f %% ',[iZaehler,Tage[iZaehler],iSumme*100/ccSamples]));
    End;
End;
Liefert
  • Tag 30: 32168, 3,2 %
    Tag 31: 32155, 6,4 %
    Tag 32: 32360, 9,7 %
    Tag 33: 32308, 12,9 %
    Tag 34: 32338, 16,1 %
    Tag 35: 32309, 19,4 %
    Tag 36: 32259, 22,6 %
    Tag 37: 31980, 25,8 %
    Tag 38: 32209, 29,0 %
    Tag 39: 32467, 32,3 %
    Tag 40: 32137, 35,5 %
    Tag 41: 32355, 38,7 %
    Tag 42: 32066, 41,9 %
    Tag 43: 32359, 45,1 %
    Tag 44: 32247, 48,4 %
    Tag 45: 32241, 51,6 %
    Tag 46: 32202, 54,8 %
    Tag 47: 32544, 58,1 %
    Tag 48: 32229, 61,3 %
    Tag 49: 32630, 64,6 %
    Tag 50: 32275, 67,8 %
    Tag 51: 32144, 71,0 %
    Tag 52: 32374, 74,2 %
    Tag 53: 32482, 77,5 %
    Tag 54: 32348, 80,7 %
    Tag 55: 32376, 84,0 %
    Tag 56: 32065, 87,2 %
    Tag 57: 32259, 90,4 %
    Tag 58: 32103, 93,6 %
    Tag 59: 32114, 96,8 %
    Tag 60: 31897, 100,0 %
Nun gut, die 50% werden bei Tag 45 nicht getroffen, aber das geht mit der Vorgabe auch nicht, Denn es sind ja 31 Tage zwischen dem 30. und 60. Tag...

Was man aber nicht erwarten darf, das bei 31 Versuchen garantiert alle Tage getroffen werden. Wenn das erwünscht ist, dann bietet sich nur eine zufällige Permutation an. Dann ist das nur nicht mehr zufällig, sondern vermischt. Aber dafür nach jeweils 31 Durchläufen garantiert gleichverteilt.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
 


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 23:03 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