Доброго времени суток.
Ситуация такая - есть событие, которое должно происходить с вероятностью 1,2e-5 .
Вот что то не соображу, как написать такую функцию на си, которая бы возвращала истину с такой вероятностью?
В голову приходит что-то вроде
bool event() {
int j = 1 + (int)(1000000.0 * (random()/(RAND_MAX+1.0)));
return (bool)(j < 12);
}
И вроде похоже на истину, если распределение random равномерное. Но вот два момента:
1) что-то я не пойму, какое у random распределение?
2) если равномерное, то будет ли работать предложенный вариант для равномерного распределения?