Ho una matrice di strutture e uno dei campi nella struct è un float. Voglio scegliere una delle strutture in cui la probabilità di selezionarlo è relativa al valore del float. ieFunzione C++ per il prelievo da una lista in cui ogni elemento ha una probabilità distinta
struct s{
float probability;
...
}
s sArray[50];
Qual è il modo più veloce per decidere quale scegliere? C'è una funzione per questo? Se conoscessi la somma di tutti i campi di probabilità (Nota che non sarà 1), allora potrei scorrere ogni s e confrontare probability/total_probability
con un numero casuale, cambiando il numero casuale per ogni s? ie
if((float) (rand()/RAND_MAX) < probability)...
s-> probabilità dovrebbe essere corrente-> probabilità, corretta? – Stuart
'rand()/statico_cast (RAND_MAX)' sarà sempre o 0 (con probabilità molto alta) o 1 (con probabilità molto bassa). Potresti provare 'rand()/static_cast (RAND_MAX)'. –
Ho usato: '(float) ((float) rand()/RAND_MAX)' Funziona per me. – Stuart