Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zufallsbereich mit Wahrscheinlichkeit
#1
Hallo zusammen,

in meinem Projekt möchte ich gerne Zahlen in einem festgelegten Bereich nach bestimmten Wahrscheinlichkeiten generieren.
Ich habe dazu schon viele Foren durchforstet aber noch nicht die passende Lösung gefunden.

Zu meinem Problem:

Ich möchte die Zahlen von 1-40 nach folgender Wahrscheinlichkeit generieren:

1-10    10%
11-20  20%
21-30  30%
31-40  40%

Dafür habe ich die Formel:

=WENN(ZUFALLSZAHL()*0,1;ZUFALLSBEREICH(1;10);WENN(ZUFALLSZAHL()*0,2;ZUFALLSBEREICH(11;20);WENN(ZUFALLSZAHL()*0,3;ZUFALLSBEREICH(21;30);WENN(ZUFALLSZAHL()*1;ZUFALLSBEREICH(31;40);""))))

Diese Formel gibt mir aber durch die Wenn-Funktion nur die Zahlen von 1-10 zurück und ignoriert die restlichen Zahlen bis 40 und deren Wahrscheinlichkeiten. 

Gibt es denn noch eine Alternative, mit der sich das Problem lösen lässt?


Schonmal vielen Dank im Voraus!

LG
Antworten Top
#2
Wink 
Hi

Habe es mal mit 1000 Zahlen überprüft. Geht eigentlich ganz gut. Aber Zufall ist Zufall und lässt sich eigentlich nicht in Grenzen festhalten. 19
Code:
=WAHL(VERWEIS(ZUFALLSBEREICH(1;100);{1;11;31;61};{1;2;3;4});ZUFALLSBEREICH(1;10);ZUFALLSBEREICH(11;20);ZUFALLSBEREICH(21;30);ZUFALLSBEREICH(31;40))

Gruß Elex
Antworten Top
#3
Hallo,

versuch es mal so:
=ZUFALLSBEREICH(WAHL(ZUFALLSBEREICH(1;10);1;1;1;1;11;11;11;21;21;31);40)

EDIT: Habe gerade gesehen, dass Elex auch eine Lösung gepostet hat, die genauso gut funktioniert.
Gruß
Michael
Antworten Top
#4
Eine allgemeine Lösung:
https://berndplumhoff.gitbook.io/sulprob...ndhistogrm

Eine allgemeine Lösung mit genau der gewünschten Verteilung:
https://berndplumhoff.gitbook.io/sulprob...ndhistogrm

Und wenn die genaue Lösung nur ganzzahlig sein soll:
https://berndplumhoff.gitbook.io/sulprob...actrandint
Antworten Top
#5
Hallo,

erstmal vielen Dank an euch beide.

Die Formel von Steuerfuzzi hat bei meinem Projekt sehr gut funktioniert. 
Bei Elex bin ich nicht ganz klargekommen. Ich komme bei Excel nur mit einfachsten Formeln zurecht.

Welche Bedeutung haben {1;11;31;61} im Suchvektor und {1;2;3;4} im Ergebnisvektor?
Wobei ich denke das die Zahlen im Ergebnisvektor meine Wahrscheinlichkeiten sind.


LG 

Balthazar
Antworten Top
#6
Moin

Das die Zufallszahlen in Excel einer weniger zufälligen gleichmäßigen Verteilung unterliegen ist bekannt.

In meiner Formel wird eine Zahl von 1 bis 100 erzeugt, mit dem Suchvektor verglichen und der Wert aus dem Ergebnisvektor dann an die Wahl Funktion übergeben. Zahlen von 1-10(also 10%) landen im Ergebnisvektor bei der 1, 11-30(20%) in 2, 31-60(30%) in 3 und 61-100(40%) in 4.
 

Michael macht die Verteilung der Prozente im ersten Schritt durch die Zahlen 1-10(was meiner 1-100 entspricht). Da er dann aber die auszugebenden Zufallszahl  1-10 wieder zufällig in einem Bereich von 1-40 ermittelt, hätte ich gedacht das die Streuung der Verteilung etwas größer ist als bei meiner. Ist sie aber nicht, also schöne Formel. Thumps_up

Gruß Elex
Antworten Top
#7
Die gleichmäßige Verteilung entspricht der Erwartung und ist kein Maß für die Güte des Zufalls. ZUFALLSBEREICH liefert schon ganz gute Zufallszahlen und ist wesentlich zufälliger als die rnd-Funktion in VBA.
Gruß
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste