Zufallszahl mit Wahrscheinlichkeit

ElTheodore

Neues Mitglied
Hallo,
ich möchte gerne, dass eine zufällige Zahl von 2 bis 11 generiert wird:

int zufallsZahl = zufall.nextInt(10) + 2;

das klappt so auch, allerdings hätte ich jetzt gerne noch die vierfache Wahrscheinlichkeit darauf, dass es eine 10 ist.
Hat jemand eine Idee wie das gehen könnte?
 

Tarrew

Top Contributor
Für sowas kannste zum Beispiel so eine Klasse benutzen:
WeightedCollection


Bespiel:
Java:
import java.util.*;

public class Test {

    public static void main(String[] args) {

        WeightedCollection<Integer> w = new WeightedCollection<>();
        w.add(1, 2)
                .add(1, 3)
                .add(1, 4)
                .add(1, 5)
                .add(1, 6)
                .add(1, 7)
                .add(1, 8)
                .add(1, 9)
                .add(4, 10)
                .add(1, 11);


        int[] numbers = new int[10];
        for (int i = 0; i < 10000; i++) {
            numbers[w.next() - 2]++;
        }

        for (int i = 0; i < numbers.length; i++) {
            System.out.println(String.format("Zahl: %-10d Anzahl: %d", i + 2, numbers[i]));
        }
    }


}

class WeightedCollection<E> {

    private NavigableMap<Integer, E> map = new TreeMap<Integer, E>();
    private Random random;
    private int total = 0;

    public WeightedCollection() {
        this(new Random());
    }

    public WeightedCollection(Random random) {
        this.random = random;
    }

    public WeightedCollection<E> add(int weight, E object) {
        if (weight <= 0) return this;
        total += weight;
        map.put(total, object);
        return this;
    }

    public E next() {
        int value = random.nextInt(total) + 1;
        return map.ceilingEntry(value).getValue();
    }

}
 

mihe7

Top Contributor
Oder ganz poplig:
Java:
int[] zahlen = {2,3,4,5,6,7,8,9,10,10,10,10,11};
System.out.println(zahlen[(int)(Math.random()*zahlen.length)]);
 
X

Xyz1

Gast
mihe , es sollte so auch, bedarf aber noch der Verbesserung:
Java:
int multiplier = 4;
int q = 2;
int[] s = new int[13];
for (int i = 0; i < 13;  ) {
    if (q == 10) {
        while (multiplier-- > 0) {
            s[i++] = 10;
        }
        i--;
    } else {
        s[i] = q;
    }
    q++;
    i++;
}
System.out.println(s[(int) (Math.random() * s.length)]);
 

mihe7

Top Contributor
Dann aber so:
Java:
int random(int min, int max, int which, int multiplier) {
    int v = (int)(Math.random() * (max - min + multiplier)) + min;
    return v < which ? v : v < which+multiplier ? which : v - multiplier + 1;
}

System.out.println(random(2,11,10,4));
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Zufallszahl mit Wahrscheinlichkeit Java Basics - Anfänger-Themen 13
krgewb Immer dieselbe Zufallszahl Java Basics - Anfänger-Themen 4
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
J for Schleife kleinste Zufallszahl finden Java Basics - Anfänger-Themen 25
brypa Zufallszahl Java Basics - Anfänger-Themen 9
C Zufallszahl + Werte bereich einstellen Java Basics - Anfänger-Themen 2
N Bereich Zufallszahl bestimmen (50 und 100 / 80 und 90) Java Basics - Anfänger-Themen 2
J Zufallszahl funktioniert nicht Java Basics - Anfänger-Themen 27
T Random soll Zufallszahl beibehalten. Java Basics - Anfänger-Themen 11
F Immer wieder gleiche Zufallszahl? Java Basics - Anfänger-Themen 4
D Zufallszahl zwischen 10 und 99? Java Basics - Anfänger-Themen 5
M Vierstellige Zufallszahl Java Basics - Anfänger-Themen 3
B Methoden Per Buttonklick eine Zufallszahl in ein Numberfield geben Java Basics - Anfänger-Themen 2
S Zufallszahl-Generatoren (Schnittstellen) Java Basics - Anfänger-Themen 14
S Zufallszahl (Statische Attribute und Methoden) Java Basics - Anfänger-Themen 10
M Erste Schritte Zufallszahl Spiel Problem Java Basics - Anfänger-Themen 7
N Zufallszahl beim Eintragen Java Basics - Anfänger-Themen 2
B Methoden Die Sache Mit der Zufallszahl Java Basics - Anfänger-Themen 3
I immer die gleiche Zufallszahl Java Basics - Anfänger-Themen 9
F Zufallszahl ohne Wiederholung Java Basics - Anfänger-Themen 7
R Zufallszahl Java Basics - Anfänger-Themen 5
P Typecasting für Ganzzahlige Zufallszahl (Math.random) Java Basics - Anfänger-Themen 2
S Zufallszahl erzeugen in 50er Schritten Java Basics - Anfänger-Themen 2
S Gerade bzw. Ungerade Zufallszahl generieren Java Basics - Anfänger-Themen 5
P Erste Schritte Zufallszahl in Ascii-Code umwandeln ?!? Java Basics - Anfänger-Themen 6
M Exception bei Zufallszahl Java Basics - Anfänger-Themen 15
M neue Zufallszahl in Schleife Java Basics - Anfänger-Themen 2
TheKing Zufallszahl die man durch 15 dividieren kann Java Basics - Anfänger-Themen 6
Luk10 Zufallszahl "ohne" eine bestimmte Zahl(en) Java Basics - Anfänger-Themen 8
N zufallszahl Java Basics - Anfänger-Themen 3
D Java Zufallszahl Java Basics - Anfänger-Themen 5
N Zufallszahl Java Basics - Anfänger-Themen 2
A Eingabe und Zufallszahl Java Basics - Anfänger-Themen 12
S Zufallszahl -> Schleife Java Basics - Anfänger-Themen 10
TheKing ZufallsZahl im negativbereich Java Basics - Anfänger-Themen 2
S Zufallszahl mit 6 Stellen erzeugen Java Basics - Anfänger-Themen 4
D bei Zufallszahl immer 2 Java Basics - Anfänger-Themen 12
K Zufallszahl Java Basics - Anfänger-Themen 4
Z Alle 15 sek eine Zufallszahl auf Bildschirm Java Basics - Anfänger-Themen 10
M Zufallszahl - kleine Frage Java Basics - Anfänger-Themen 4
S Zufallszahl Java Basics - Anfänger-Themen 9
I Zufallszahl ziwschen 0 und 7 Java Basics - Anfänger-Themen 3
F Zufallszahl in einem bestimmten Intervall Java Basics - Anfänger-Themen 9
B Befehl zum erstellen einer Zufallszahl. Java Basics - Anfänger-Themen 8
S 4-stellige Zufallszahl Java Basics - Anfänger-Themen 4
P Methode funzt nicht => Zufallszahl darf nicht 2x erschein Java Basics - Anfänger-Themen 4
M zufallszahl ohne doppelvorkommen Java Basics - Anfänger-Themen 2
H Zufallszahl Java Basics - Anfänger-Themen 2
K [Java] Zufallszahl als ganze Zahl Java Basics - Anfänger-Themen 5
G Zufallszahl zwischen 2 und n Java Basics - Anfänger-Themen 10
R Zufallszahl random Java Basics - Anfänger-Themen 8
E zufallszahl zwischen 1 und 6 Java Basics - Anfänger-Themen 6
J eigene methode erstellen die eine Zufallszahl generiert. Java Basics - Anfänger-Themen 12
J Zufallszahl ohne Math.random Java Basics - Anfänger-Themen 4
S Spiel: Wer ist näher an der Zufallszahl? Java Basics - Anfänger-Themen 4
N Überprüfung der ZufallsZahl? Java Basics - Anfänger-Themen 2
S Zufallszahl ermitteln Java Basics - Anfänger-Themen 2
C Zufallszahl zwischen... Java Basics - Anfänger-Themen 10
H zufallszahl Java Basics - Anfänger-Themen 2
F Wahrscheinlichkeit von Strings Java Basics - Anfänger-Themen 3
N java.util.Random - Zwei Zahlen mit festgesetzter Wahrscheinlichkeit? Java Basics - Anfänger-Themen 15
B Variablen Mehrere Zahlen mit unterschiedlicher Wahrscheinlichkeit mit Random auswählen Java Basics - Anfänger-Themen 17
F Wie rechne ich bei meinem Code, die Wahrscheinlichkeit von Fall X aus? Java Basics - Anfänger-Themen 3
Q Formel für Wahrscheinlichkeit in Java Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben