Auswahl anhand Wahrscheinlichkeiten

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Ist wohl eher ein Matheproblem aber ich steh irgendwie auf dem Schlauch.
Ich habe 3 Aktionen, die mit verschiedenen Wahrscheinlichkeiten ausgeführt werden. Wahrscheinlichkeiten sind bekannt. Also z.B.:

Aktion1 wird mit 20% Wahrscheinlichkeit ausgeführt
Aktion2 wird mit 30% Wahrscheinlichkeit ausgeführt
Aktion3 wird mit 50% Wahrscheinlichkeit ausgeführt

Wie krieg ich das hin, dass die Aktionen entsprechend ihrer Wahrscheinlichkeiten unterschiedlich häufig ausgewählt werden?


Also...

Code:
public int chooseAction(){
int nummer;
.
.
.
return nummer;
}

...soll Nummer der gewählten Aktion ausgeben und es soll in 20% der Fälle Aktion1, in 30% der Fälle Aktion2 und in 50% der Fälle Aktion3 rauskommen.
Danke im Vorraus!
 
S

SlaterB

Gast
genau diese Zahlen und wenn ja, dann in welcher Reihenfolge, was als erstes, zweites, drittes?
offensichtlich kann nur alle 10 Durchläufe das Ergebnis so genau erreicht werden


-------

oder Zufall:
nimm ein Objekt der Klasse Random (eins wiederverwenden, nicht ständig neu erzeugen!),
hole dir eine Zufallszahl, z.B. zwischen 0 und 1
und prüfe ob sie <0.2, <0.5 oder >= 0.5 ist
 
G

Guest

Gast
Nein, das sind immer andere Zahlen, habe jetzt nur für dieses Beispiel so einfache genommen, damit es verständlicher wird.

Aber ich hab überlegt:
Kann ich einfach 3 Zufallszahlen zwischen 0 und 1 generieren, die mit den %-Zahlen multiplizieren und dann dann das Maximum nehmen? Dann müsste doch das gewünschte rauskommen, oder?

also

max von
1) rand1*20%
2) rand2*30%
3) rand3*50%

dann müsste in 50% der Fälle das 3. das Maximum sein. Oder lieg ich total falsch?
 

moormaster

Top Contributor
Anonymous hat gesagt.:
max von
1) rand1*20%
2) rand2*30%
3) rand3*50%

dann müsste in 50% der Fälle das 3. das Maximum sein. Oder lieg ich total falsch?

[edit:] Wenn rand1-3 jeweils zwischen 1 und 0 liegen, dann ist nicht in 50% aller Fälle rand3 das Maximum, sondern im Mittel ist rand3 das Maximum. Über die konkreten Einzelfälle kann man in der Stochastik wenig aussagen.[/edit]

Also normaler Weise geht man von einer Gleichverteilung aus. D.h. wenn Zahlen zwischen 0 und 1 auftreten können, dann gibt es keine Zahl die im Schnitt bevorzugt (d.h. besonders häufig) auftritt. Nun könnte man diesen Bereich zwischen 0 und 1 aufteilen in Stücke, welche genau die gewünschten Größen haben.

Zum Beispiel wenn man eben 3 Elemente hat, die auftreten können, dann teilt man diesen Bereich zwischen 0 und 1 auch in 3 Stücke, wobei die Größe der Stücken eben den Häufigkeitsverhältnissen entsprechen, die man im Mittel erreichen möchte.

Zum Beispiel, wenn man den Bereich eben in 20%, 40% und ein 60% Stück aufteilen will, dann kann man das entsprechend durch folgende Festlegungen tun:

Element 1, wenn Zahl < 20
Element 2, wenn Zahl >= 20 und < 40
Element 3, wenn Zahl >= 40 (und < 100)

Dann würden die Elemente jeweils mit 20%, 40% und 60%iger Wahrscheinlichkeit eintreten. Das gilt aber nur, wenn es sich um echten Zufall handelt. Dieser wird jedoch bei den errechneten Pseudozufalls zahlen nie 100%ig erreicht (nur annähernd). Das heisst genau genommen gelten die Gesetze des Zufalls am Rechner nur annähernd. Es kann immer Zahlen geben, bei denen die Wahrscheinlichkeit vom "echten" Zufall abweicht.
 
S

SlaterB

Gast
> max von
> 1) rand1*20%
> 2) rand2*30%
> 3) rand3*50%

> dann müsste in 50% der Fälle das 3. das Maximum sein. Oder lieg ich total falsch?

ich kann mir jetzt gut vorstellen, dass das mathematisch anders aussieht,
aber mache doch mal eben einen Test mit 1 Mio. oder noch mehr Durchläufen + mitzählen
dann dürfte das Ergebnis deutlich sein,

die <=-Methode ist weniger aufwendig
 

FelixB

Bekanntes Mitglied
Code:
double p1 = 0.2;
double p2 = 0.3;
double p3 = 0.5; // brauchst eigentlich nicht

double rand = getRandom(); 

if(rand <= p1) action1;
if(rand <= p2) action 2;
if(rand > p2) action 3;

nur mal so schnell runtergetippt, die Zufallszahl musst natürlich richtig holen (zwischen 0 und 1). Die Wahrscheinlichkeiten setzt du halt irgendwie vorher in die Variablen p1 und p2 (p3 ist eigentlich nciht nötig, ergibt sich auch aus p3 = 1-p1-p2).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
P Auswahl bei einem Videoverleih limitieren Java Basics - Anfänger-Themen 4
J Objekt bei Auswahl in jList ändern Java Basics - Anfänger-Themen 6
D Auswahl und Ausgabe erstes Programm Java Basics - Anfänger-Themen 8
Moritz1508 Variablen Erstellung eines simplen Taschenrechners mit +/- - Auswahl Java Basics - Anfänger-Themen 2
M Erste Schritte Auswahl in einer JList Java Basics - Anfänger-Themen 2
X Nach switch case weiter mit Auswahl Java Basics - Anfänger-Themen 7
A Grundrechenarten; Aufforderung zur Bestätigung oder Auswahl Java Basics - Anfänger-Themen 25
das_leon if als Auswahl (Anfänger) Java Basics - Anfänger-Themen 1
L Speicherort auswahl Java Basics - Anfänger-Themen 4
M JComboBox Auswahl Java Basics - Anfänger-Themen 10
J JComboBox - Auswahl auslesen Java Basics - Anfänger-Themen 2
P Klassen Mehrseitige Auswahl Java Basics - Anfänger-Themen 6
N Auswahl von Arrays durch Stringeingabe Java Basics - Anfänger-Themen 20
K Auswahl der Grafikbibliothek Java Basics - Anfänger-Themen 9
K Zufällige Auswahl innerhalb eines Arrays und Arrays aus JLabel füllen Java Basics - Anfänger-Themen 32
JAVAnnik JList Auswahl Java Basics - Anfänger-Themen 2
D Erste Schritte Auswahl der richtigen tools Java Basics - Anfänger-Themen 7
R Auf auswahl in ner JComboBox reagieren Java Basics - Anfänger-Themen 3
J select-feld auswahl, jsp javascript Java Basics - Anfänger-Themen 2
J Sortieren nach Auswahl Java Basics - Anfänger-Themen 3
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
S FileFilter je nach RadioButton-Auswahl Java Basics - Anfänger-Themen 4
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
J Taschenrechner Combobox Reaktion auf Auswahl Java Basics - Anfänger-Themen 2
M zufällige auswahl eines Panels aus Grid Layout Java Basics - Anfänger-Themen 3
E Combobox Auswahl überprüfen Java Basics - Anfänger-Themen 7
G Befehl für Ende bei Switch-Auswahl Java Basics - Anfänger-Themen 11
C Bilder Vorschau und Auswahl Java Basics - Anfänger-Themen 4
X JFileChooser Auswahl Java Basics - Anfänger-Themen 4
X Auswahl durch Eingabe von Buchstaben - aber wie? Java Basics - Anfänger-Themen 2
E auswahl von dateien Java Basics - Anfänger-Themen 2
G Auswahl eines Arbeitsverzeichnisses Java Basics - Anfänger-Themen 7
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
D Pfad-Auswahl mit dem JFileChooser Java Basics - Anfänger-Themen 8
I Editor auswahl Java Basics - Anfänger-Themen 6
J dynamische Auswahl einer überladenen Methode Java Basics - Anfänger-Themen 5
R Zweiseitige Auswahl Java Basics - Anfänger-Themen 16
B Auswahl mit switch ? Java Basics - Anfänger-Themen 6
G Schrift-Auswahl-Dialog? Java Basics - Anfänger-Themen 6
P Auswahl von JComboBox abfangen Java Basics - Anfänger-Themen 3
G Auswahl:in File schreiben, oder System.out.print Java Basics - Anfänger-Themen 4
C Auswahl problem Java Basics - Anfänger-Themen 5
W JComboBox- Auswahl schließt komplettes Fenster Java Basics - Anfänger-Themen 10
G Auswahl in DropDown feldern in JSP seiten als Action Aufruf Java Basics - Anfänger-Themen 2
G Filechooser ohne Auswahl für Dateityp Java Basics - Anfänger-Themen 2
D Über Button abhängig von Auswahl 2 versch. Fenster öffnen Java Basics - Anfänger-Themen 2
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
Y Suche von Studenten anhand Ihrer Eigenschaften. Java Basics - Anfänger-Themen 1
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
NeoLexx equals()-Methode Verständnis Frage anhand Code Beispiel Java Basics - Anfänger-Themen 22
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
N Erste Schritte HSV color space - schwarz und weiß nur anhand von Saturation oder Multiplikator ermitteln Java Basics - Anfänger-Themen 14
M String zerlegen anhand anderer String Java Basics - Anfänger-Themen 6
M Allgemeine Java-Frage anhand bspw. Eclipse Java Basics - Anfänger-Themen 4
U Anhand von Ant ein War-File erstellen Java Basics - Anfänger-Themen 0
D Instanz einer Subklasse anhand deren Superklasse Java Basics - Anfänger-Themen 5
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
A Rekursion (anhand von Mergesort) nachvollziehen Java Basics - Anfänger-Themen 4
X Bildabschnitt anhand der Farbe und messen Java Basics - Anfänger-Themen 4
U Vererbung Suche Hilfe anhand eines Bsp. Java Basics - Anfänger-Themen 1
P Punkte anhand 3. Koordinate vergleichen Java Basics - Anfänger-Themen 3
O ArrayListe sortieren anhand zweier Parameter Java Basics - Anfänger-Themen 4
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
N kleine get-Methode anhand einer Aufgabenstellung Java Basics - Anfänger-Themen 13
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
V Objekte/Klassen erstellen - Erklärung anhand Beispiel Java Basics - Anfänger-Themen 4
S Datentypen Reflection Cast anhand eines Strings? Java Basics - Anfänger-Themen 7
P Key anhand von Value finden (Hashtable) Java Basics - Anfänger-Themen 3
H Anhand von Jar, andere Jar öffnen Java Basics - Anfänger-Themen 7
J Bild anhand von Koordinaten zeichnen Java Basics - Anfänger-Themen 10
T Uhrzeigersinn anhand von Koordinaten Java Basics - Anfänger-Themen 7
H Objekt aus array holen anhand des Objekttypen Java Basics - Anfänger-Themen 8
D Methode anhand deren Name aufrufen Java Basics - Anfänger-Themen 4
S Komposition beispiel anhand eines kopierers Java Basics - Anfänger-Themen 4
R Vergleich von Objekten anhand variierender Kriterien Java Basics - Anfänger-Themen 5
M Umfang von Rechteck oder Kreis anhand der Parameter Java Basics - Anfänger-Themen 2
L rechtecke zeichnen anhand von matrix Java Basics - Anfänger-Themen 27
A Threads anhand eines Tokens abarbeiten Java Basics - Anfänger-Themen 7
G Arrayliste mit Objekt anhand von Strings sortieren Java Basics - Anfänger-Themen 8
O Zugriffskontrolle anhand von IP-Adressbereichen Java Basics - Anfänger-Themen 11
G Elemente in einer ArrayList anhand ID löschen Java Basics - Anfänger-Themen 17
A Objekte in ArrayList anhand Variable sortieren Java Basics - Anfänger-Themen 10
G Zeichenkette anhand einer anderen Zeichenkette trennen Java Basics - Anfänger-Themen 6
Chucky Rekursion grafisch darstellen anhand eines Applets Java Basics - Anfänger-Themen 14
X Anhand eines Objektnamen ein Objekt finden Java Basics - Anfänger-Themen 11
T Wahrscheinlichkeiten für Slot Machine Java Basics - Anfänger-Themen 13
D Wahrscheinlichkeiten mit Math.random() Methode Java Basics - Anfänger-Themen 1
A Zufälliges Objekt basierend auf Wahrscheinlichkeiten bekommen. Java Basics - Anfänger-Themen 4
N Wahrscheinlichkeiten ermitteln Java Basics - Anfänger-Themen 2
D Wahrscheinlichkeiten bei Würfel ändern Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben