alf*_*.cz 1 excel vba excel-vba
我需要通过Rnd函数模拟经典游戏立方体(值1-6).我的解决方案是Round(5 * Rnd() + 1, 0)
,但是当我生成1百万个值时,我没有很好的结果(按照图片).
我认为,这个问题很难使用ROUND函数,但我不知道在哪里.谢谢您的回答...
让我们一块一块地看一下.
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正确的权重.
归档时间: |
|
查看次数: |
108 次 |
最近记录: |