jac*_*007 2 random probability
你有一个函数rand(3),它产生从1到3的随机整数.使用这个函数,构造另一个函数rand(9),它产生从1到9的随机整数.
Amb*_*ber 20
这是一个简单的解决方案:
rand(3) + 3*(rand(3) - 1)
Run Code Online (Sandbox Code Playgroud)
你想要这样做的原因是它提供了从1到9的所有可能值的均匀分布.
有些人可能会想做rand(3) * rand(3)
,但实际上并没有产生一些数字 - 例如7.它也分布不均匀它的数字不会产生.
类似地,有些人可能会这样做rand(3) + rand(3) + rand(3)
,但这也不会生成所有数字(它永远不会生成1或2),并生成具有不成比例频率的其他数字(5生成频率远高于9).