Tengo una matriz de estructuras y uno de los campos de la estructura es un flotador. Quiero elegir una de las estructuras donde la probabilidad de elegirla es relativa al valor de la flotación. es decir,C++ función para elegir de una lista donde cada elemento tiene una probabilidad distinta
struct s{
float probability;
...
}
s sArray[50];
¿Cuál es la forma más rápida de decidir qué s elegir? ¿Hay una función para esto? Si supiera la suma de todos los campos de probabilidad (tenga en cuenta que no será 1), ¿podría iterar a través de cada s y comparar probability/total_probability
con un número aleatorio, cambiando el número aleatorio para cada s? es decir,
if((float) (rand()/RAND_MAX) < probability)...
s-> la probabilidad debería ser actual-> probabilidad, ¿correcto? – Stuart
'rand()/static_cast (RAND_MAX)' siempre será 0 (con muy alta probabilidad) o 1 (con muy baja probabilidad). Puede intentar 'rand()/static_cast (RAND_MAX)' en su lugar. –
Utilicé: '(flotación) ((flotación) rand()/RAND_MAX)' Funciona para mí. – Stuart