圆形功能VBA EXCEL

时间:2016-12-01 11:17:57

标签: excel vba excel-vba

我需要通过Rnd函数模拟经典游戏立方体(值1-6)。我的解决方案是Round(5 * Rnd() + 1, 0),但是当我生成1百万个值时,我没有很好的结果(按照图片)。 RESULTS HERE 我认为,这个问题很难使用ROUND函数,但我不知道在哪里。 谢谢你的答案......

2 个答案:

答案 0 :(得分:5)

让我们逐一看一下。

Rnd()给出0到1之间的数字。

所以5 * Rnd() + 1给出1到6之间的数字。

我们可以认为这个数字同样可能出现在10个半整数区域之一:[1,1.5],[1.5,2] ...... [5.5,6]。

其中一个将围绕1 - [1,1.5]。

其中两个将围绕2 - [1.5,2]和[2,2.5]。

3,4和5类似地有两个这些将围绕它们。

其中一个会圆到6 - [5.5,6]

这解释了您所看到的分布。

因此,Round(6 * Rnd() + 0.5, 0)应该为您提供您正在寻找的内容,因为它会在两个方向上将区域扩展一半,因此给出1和6正确的权重。

答案 1 :(得分:1)

你试过randbetween()吗?对我来说工作得很好......