Скажем, мне нужно написать программу лотереи, скажем, для каждого пользователя при каждой попытке, 10%, чтобы выиграть награду A, 20% для B, иначе ничего.
Первый подход:
r = rand() //generate a rand number between [0,1)
if r < 0.1 {
// win A
} else if r < 0.3 {
// win B
} else {
// nothing
}
Второй подход:
// generate an array containing 10% of A and 20% of B
balls = [0,B,0,0,A,B,0,0,0,0]
i = rand(0,10) // generate a rand number between [0,10)
result = balls[i] // this is if you win or not
Мне статистически интересно, идентичны ли эти два (я так думаю). Или, возможно, оба несовершенны?