구조체의 배열을 가지며 구조체의 필드 중 하나가 float입니다. 나는 그것을 선택하는 확률이 float의 값에 비례하는 구조체 중 하나를 고르고 싶다. ie각 요소가 고유 한 확률을 갖는 목록에서 선택하는 C++ 함수
struct s{
float probability;
...
}
s sArray[50];
어떤 것을 고르는 것이 가장 빠른 결정입니까? 이 기능이 있습니까? 모든 확률 필드의 합을 알고 있다면 (1이 아님을 유의하십시오.) 각 s를 반복하고 probability/total_probability
과 임의의 숫자를 비교하여 각 s의 난수를 변경 할 수 있습니까? ie
s-> 확률은 현재 -> 확률, 정확해야합니까? – Stuart
'rand()/static_cast (RAND_MAX)'는 항상 0 (매우 높은 확률) 또는 1 (매우 낮은 확률)입니다. 'rand()/static_cast (RAND_MAX)'를 대신 사용해보십시오. –
'float ((float) rand()/RAND_MAX)'를 사용했습니다 : 그것은 저에게 효과적입니다. – Stuart