圆形功能VBA EXCEL

alf*_*.cz 1 excel vba excel-vba

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

bob*_*job 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正确的权重.