Zum Inhalt springen
  • Beiträge
    7
  • Kommentare
    21
  • Aufrufe
    1602

Zufallszahlen mit Excel


Akeem al Harun

849 Aufrufe

Derzeit arbeite ich daran, massenhaft halbwegs ausgewogene Grad 1 Figuren mit Excel zu erstellen. Dazu benötige ich natürlich auch Zufallszahlen. Bisher habe ich dafür immer die folgende Formel verwendet:

 

=RUNDEN(ZUFALLSZAHL()*(-1)+1;0)

 

Die ZUFALLSZAHL hat immer ein Ergebnis zwischen 0 und 1. Würde man das mit 100 Multiplizieren, wäre der Ergebnisraum 0-100. Da aber die Nullen unerwünscht sind, multipliziere ich mit 99 (Ergebnisraum 0-99) und korrigiere das um eins nach oben.

 

Allerdings ist mir heute morgen bei der Fahrt zur Arbeit klar geworden, dass das keine optimale Formel ist. In der Arbeit habe ich eine Testreihe mit Excel durchgeführt und mein Verdacht hat sich bestätigt: die Ränder sind unterbesetzt. Die 1er und 20er bzw. 100er treten nur etwa halb so häufig auf, wie alle anderen Ergebnisse, die gleich verteilt sind. Daher habe ich eine bessere Formel entwickelt, die tatsächlich eine Gleichverteilung auch auf die Ränder gewährleistet. Ich habe diese Formel ebenfalls durch Messreihen untersucht. Die neue Formel lautet:

 

=REST(RUNDEN(ZUFALLSZAHL()*1000;)+1

 

Die Formel REST entspricht dem Mathematischen Modulo, also dem Rest aus einer ganzzahligen Division. REST(99;20) bzw. 99 modulo 20 ergibt zum Beispiel 19, weil 99/20 = 4 Rest 19. Da der Ergebnisraum für 20 die Zahlen 0 - 19 sind, muss auch hier der Ergebnisraum um eins nach oben korrigiert werden.

 

Noch Fragen?

4 Kommentare


Empfohlene Kommentare

rito

Geschrieben

Ist das ein Fehler von Excel? Oder Weshalb kommt es zu solch einer Verteilung?

Solwac

Geschrieben

Die Formel für Zahlen zwischen 1 und 100 lautet einfach:

 

=GANZZAHL(ZUFALLSZAHL()*100+1)

 

Beim Runden wird aufgerundet, deshalb sind die Ränder nur halb besetzt. GANZZAHL vermeidet das.

Akeem al Harun

Geschrieben

@Rito: Nein, das ist kein Fehler in Excel, das ist ein Fehler im System bzw. der Formel. Es liegt, wie Solwac richtig sagt, am Runden (auch wenn er das meines Erachtens falsch begründet). Die Formel ohne Runden erzeugt Zahlen zwischen 1 und 100. Die Zahl 1 wird bei Zahlen von 1,000 bis 1,499 erzeugt, die Zahl 2 bei 1,500 bis 2,499, die Zahl 3 bei 2,500 bis 3,499 usw. die Zahl 100 bei 99,500 bis 100.

 

Anders gesagt: die Zahlen 1 und 100 haben ein Spektrum von 0,5, alle andere ein Spektrum von 1. Dass die 1 und 100 da nur "halb" besetzt sind, entspricht genau der Erwartung.

 

@Solwac: Du hast recht, ich habe gar nicht daran gedacht, die Dezimalstellen einfach abzuschneiden. :patsch:

 

Die Modulo Formel finde ich dennoch schöner. ;)

Airlag

Geschrieben

Ist hier ein durchgeknallter Spambot unterwegs?

 

Die Formel mit Ganzzahl funktioniert.

Wer mit Runden arbeiten mag sollte es mal damit probieren:

=RUNDEN(ZUFALLSZAHL()*+0,5;0)

 

Der Fehler bei der Modulo-Formel ist kleiner, aber immer noch vorhanden. Wenn der Multiplikator nach der Zufallszahl kein Vielfaches von der Anzahl der Würfelseiten ist gibts nen weiteren systematischen Fehler.

Gast
Kommentar schreiben...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...