Ich habe ein Array von Strukturen und eines der Felder in der Struktur ist ein Float. Ich möchte eine der Strukturen auswählen, bei denen die Wahrscheinlichkeit, sie auszuwählen, relativ zum Wert des Floats ist. dh
%Vor% Was ist der schnellste Weg, um zu entscheiden, welche zu wählen? Gibt es dafür eine Funktion? Wenn ich die Summe aller Wahrscheinlichkeitsfelder wüsste (beachte, dass es nicht 1 ist), könnte ich dann jedes s durchlaufen und probability/total_probability
mit einer Zufallszahl vergleichen und die Zufallszahl für jedes s ändern? dh
Finde RAND_MAX wie du sagst. Generieren Sie eine Zufallszahl bis RAND_MAX. Durchlaufen Sie das Array, indem Sie die Wahrscheinlichkeiten hochzählen, bis Ihre generierte Zufallszahl erreicht oder überschritten ist. (Bei einer Leistung von nur 50 Elementen sollte kein Problem auftreten, andernfalls die Summen der Wahrscheinlichkeiten einmal in einem anderen Array speichern und dann eine Halbierung nach dem zufälligen Wert suchen.)
Tags und Links c++ random probability