使用rand生成rand(9)(3)

时间:2012-08-12 04:14:22

标签: random probability

你有一个函数rand(3),它产生从1到3的随机整数。使用这个函数,构造另一个函数rand(9),它产生从1到9的随机整数。

2 个答案:

答案 0 :(得分:20)

这是一个简单的解决方案:

rand(3) + 3*(rand(3) - 1)

你想要这样做的原因是它提供了从1到9的所有可能值的均匀分布。

有些人可能只想做rand(3) * rand(3),但实际上并没有产生一些数字 - 例如7。它也会不均匀地分配 生成的数字。

类似地,有些人可能会rand(3) + rand(3) + rand(3),但这也不会生成所有数字(它永远不会生成1或2),并生成频率不成比例的其他数字(生成5更多)通常比9)。

答案 1 :(得分:1)

使用rand(3)两次,可以生成3 ^ 2对整数,即(1,1),(1,2),...,(3,3)。将每对分配给值[1,9]之一(例如(1,1)到1,(1,2)到2等)将给你rand(9)。象征性地:rand(9):=(rand(3),rand(3))。