Zufallszahlen nicht zufällig genug
Übersicht

TevlarBetreff: Zufallszahlen nicht zufällig genug |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich habe folgendes Problem:
Ich brauche für ein Spiel ständig eine Zufallszahl zwischen 1 und 26. Am Anfang meines Programmes habe ich seedrnd(millisecs()) eingegeben und frage die Zufallszahlen später im Spiel mit x = rnd(1,26) ab. Trotzdem muss ich feststellen das einige Zahlen sehr häufig und einige andere sehr selten ausgegeben werden. Gibt es eine bessere Art um Zufallszahlen noch `zufälliger` zu machen? (Was klingt das dämlich > Zufallszahlen zufälliger ... ![]() |
||
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist dann wohl Zufall, dass die so oft drankommen.... | ||
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger" |
![]() |
SoNenTyp |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst ja mal Testen wie zufällig das ganze ist.
Mach mal so ein paar millionen Zufallszahlen zwischen 1 und 26. Und trage in eine Liste ein wie oft welche Zahl dran kahm. Wenn die "Zufallsgenerator" guht ist müsste jede zahl ungefähr gleich vor gekommen sein. Edit: Hier mal so ein Code Code: [AUSKLAPPEN] SeedRnd(MilliSecs())
Global Maximal=25 Global Anzahl=10000000 Dim Feld(Maximal) For Nummer=0 To Anzahl zahl=Rand(0,Maximal) Feld(zahl)=Feld(zahl)+1 Next For Nummer=0 To Maximal Print Feld(Nummer) Next WaitKey End |
||
Gruss Der Typ.
User posted image |
Tevlar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
lol, die idee hatte ich auch.... mein code ist nur etwas `unschöner`:
Global graphx = 1024 Global graphy = 768 Graphics graphx, graphy SetBuffer BackBuffer() SeedRnd(MilliSecs()) Dim werte(26) For t=1 To 26 werte(t) = 0 Next Cls Print "Warte..." For t = 1 To 10000000 x = Rnd (1,26) werte(x) = werte(x) + 1 Next Cls For t = 1 To 26 Print werte(t) Next For t=1 To 10 Next Dabei habe ich bemerkt das die erste und letzte Zahl (hier: 1 und 26) immer nur ca. halb so oft kommt wie die anderen. Auch wenn man die Anzahl von 26 verändert ist immer die erste und letzte Zahl nur halb so oft da... woran kann das liegen ?? Werde gleich mal deinen Code testen |
||
Tevlar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
warum funzt das bei deinem code ? bei dir sind alle zahlen gleich oft.... wo liegt der fehler ? | ||
Apocalyptic |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. Nimm ql:rand statt ql:rnd
2. ![]() |
||
Suum cuique
[ www.ffs-net.de.vu ] [ Raycaster ] |
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab mir das mal angesehen und muss sagen, dass dein Code mit ql:rand statt ql:rnd auch ganz gut funktioniert.
Edit: Apocalyptic, wie has du das mit dem Edit hinbekommen? ![]() Mit ql:edit gehts schonmal nicht. |
||
totonak5 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() einfach unter den symbol "edit" rechte maustaste drücken, eigenschaften, link herauskopieren und das als img einfügen |
||
Just for Fun!
Jesus loves U! |
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achso, dass es so geht ist ja offensichtlich... ![]() Ich dachte, da gäbe es eine Forumsfunktion, von der ich nichts wusste. |
||
![]() |
SoNenTyp |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rnd giebt kommazahlen zurück. Rand giebt Ganzzahlen zurück.
Nun wird gerundet. z.b. wird 1,49 zu 1. 1,5 wird zu 2. Bei der Ersten und letzten zahl giebt es also nur halb so viele möglichkeiten wie bei denen dazwischen. Folglich kommen diese auch nur halb so oft an die Reihe. |
||
Gruss Der Typ.
User posted image |
Tevlar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jep, jetzt funktioniert es....
bei rnd wird dann wohl : 1 - 1,4 = 1 1,5 - 2,4 = 2 ......... 24,5 - 25,4 = 25 25,5 - 26 = 26 sein. Was auch erklärt warum die erste und letzte nicht so oft (50%) vorkommen ! Danke, wieder was gelernt |
||
Tevlar |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ups, das war gleichzeitig | ||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hey ![]() [EDIT]dient zum ändern von Beiträgen |
||
Programmers dont die. They gosub without return... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group