Zufallszahl mit Priorität

Olminator

Mitglied
Guten Abend,

könnte mir jemand weiterhelfen? Und zwar habe ich folgendes Problem:

Ich habe eine Liste mit 10 Einträgen und hole mir eine Zufallszahl r, die eine Zahl zwischen 0 und 9 auswählt und somit dann einen der 10 Einträge auswählt. Die Chance, dass ein bestimmter Eintrag in der Liste ausgewählt wird, beträgt also 1/10. Soweit so gut.

Jetzt brauchte ich Code oder eine Formel etc., wo ich Einträge priorisieren kann.

Dh. Eintrag 6 soll plötzlich eine höhere Wahrscheinlichkeit besitzen als die anderen Einträge.
Also

Wahrscheinlichkeit(Eintrag 0) = 1/11
Wahrscheinlichkeit(Eintrag 1) = 1/11
Wahrscheinlichkeit(Eintrag 2) = 1/11
Wahrscheinlichkeit(Eintrag 3) = 1/11
Wahrscheinlichkeit(Eintrag 4) = 1/11
Wahrscheinlichkeit(Eintrag 5) = 1/11
Wahrscheinlichkeit(Eintrag 6) = 2/11
Wahrscheinlichkeit(Eintrag 7) = 1/11
...

Hintergrund ist ein Lernprogramm, welches Fragen, die man häufig falsch beantwortet, öfter abgefragt werden, als die Übrigen.

Die Fragen sind, in echt, in einer SQL-Datenbank in einer Tabelle gespeichert mit folgenden Spalten(ID, Frage, Antwort, Priorität).

Die Variable Priorität soll ein Faktor darstellen, der die Wahrscheinlichkeit beeinflusst.


Ich hoffe ich habe meine Problematik erklären können.

Für jeden Tipp wäre ich sehr dankbar.

Gruß
 

dcc

Aktives Mitglied
random 0 bis 9 wäre regulär.

random 0 bis 10 wäre modifiziert, also karten anzahl + 1
wenn >= 9, dann wähle nummer 6.

somit hätte karte 6 die doppelte wahrscheinlichkeit (im vergleich zu den anderen) genommen zu werden. was du machen könntest wäre die falsch beantworteten lernkarten irgendwo in einer liste zu speichern, 0 bis 9 dann +listen.size und wenn es greift dann holst random eine frage aus der liste der falsch beantworteten fragen.
 
Zuletzt bearbeitet:

Olminator

Mitglied
Danke für deine Antwort.

Leider wird diese "Wahrscheinlichkeitsmodifizierung" erst zur Laufzeit entschieden, dh. if-Bedingungen dieser Art würden nicht meine gesuchte Funktion erfüllen.

Wenn ich Frage x (können ja alle von 0 bis 9 sein) richtig beantworte, dann (und erst dann) wird die Wahrscheinlichkeit verändert.

Da ich wie oben gesagt, mit einer Datenbank arbeite, habe ich mir gedacht, dass es funktionieren könnte, eine Spalte "Priorität" zu hinzuzufügen, die eine Zahl beinhaltet welche einen Faktor darstellt.

Hab aber leider nicht wirklich eine Idee, wie man das in Code umsetzen könnte.
 

Olminator

Mitglied
Super Idee, Vielen Dank!

Zwei verschiedene Randomzahlen, eine für den Prioritäten-Pool, und eine für die Fragen in dem Pool.

Die Art der Modifikation der Pools kann ich dann ja wie du oben geschrieben hattest mit "If" realisieren, da die ja statisch sind. Dann muss ich mir natürlich vorher überlegen, wie stark die Wahrscheinlichkeit zwischen den Pools dann abweicht.

Ich überlege gerade... um die Reichweite der zweiten Zufallszahl zu bestimmen, müsste ich mit dem SQL-Befehl "Count" die Anzahl der Fragen mit der jeweiligen Priorität ermitteln.

Nochmals danke, hab mich schon eine Woche mit dem Problem im Kopf herumgequält.

Gruß
 

Ähnliche Java Themen

Neue Themen


Oben