Ich habe ein Array von Structs und eines der Felder in der Struktur ist ein Float. Ich möchte eine der Strukturen auswählen, bei der die Wahrscheinlichkeit, dass sie ausgewählt wird, relativ zum Wert des Floats ist, d.h.
struct s{
float probability;
...
}
s sArray[50];
Wie kann ich am schnellsten entscheiden, welche S ich wählen soll? Gibt es dafür eine Funktion? Wenn ich die Summe aller Wahrscheinlichkeitsfelder wüsste (Achtung, sie wird nicht 1 sein), könnte ich jedes s durchlaufen und vergleichen probability/total_probability
mit einer Zufallszahl, wobei die Zufallszahl für jedes s?
if( (float) (rand() / RAND_MAX) < probability)...