Don P: Gewichtete zufällige Auswahl

Beitrag lesen

Hallo,

die aufgabenstellung ist extrem einfach: ich möchte aus einem array ein element zufällig auswählen. der haken daran ist, dass jedes element eine andere gewichtung hat, sprich eine grössere oder kleinere chance hat ausgewählt zu werden.

bsp:
array[1] : 20.00% chance ausgewählt zu werden
array[2] : 10.00% chance ausgewählt zu werden
array[3] : 43.49% chance ausgewählt zu werden
array[4] : 26.51% chance ausgewählt zu werden

Die Aufgabenstellung scheint mir gar nicht einfach, oder es fehlen wichtige Angaben. Du willst also die unterschiedliche Gewichtung nicht haben? Es geht dir darum, dass  alle mit gleicher Wahrscheinlichkeit ausgewählt werden können?

Wenn der erzeugten Zufallszahl eine Gleichverteilung zugrunde liegt (dafür kannst du im Zufallsalgorithus ja sorgen), dann hat natürlich jedes Array-Element auch die gleiche Chance ausgewählt zu werden.

Wenn das aber trotzdem nicht der Fall ist, kann das nur einen Grund haben: Du hast gar keinen direkten Zugriff auf das "Array" über seine Indizes.
Ist das so? Dann würde ich versuchen, einen dirkten Zugriff zu erhalten, und gut. So ein Array ist mir aber noch nie untergekommen. Gibt es sowas überhaupt?

Falls aber direkter Zugriff besteht, dann geht es wohl nicht wirklich um die Indizes, die unterschiedliche Chancen haben, sondern eher um die Inhalte der Array-Elemente, weil es da Duplikate gibt. Wenn dem so ist, dann würde ich halt die Duplikate zuerst eliminieren. Mit einem SQL-Statement in einer Datenbank-Tabelle geht das recht einfach.

Gruß, Don P