IQA*_*eas 24 javascript random actionscript-3
其中的这些会给出恰好当随机值在0和1之间的浮动(如AS3的或JavaScript的50%的机会Math.random())?我已经看到它们都在实践中使用过:
if (Math.random() > 0.5) ...
if (Math.random() >= 0.5) ...
Run Code Online (Sandbox Code Playgroud)
抬头:我在这里很迂腐,因为在实践中,击球0.5确实是天文数字低.但是,我仍然想知道中间的位置0 inclusive和1 exclusive.
abi*_*ssu 40
从数学上讲,一个旨在将间隔[0,1)(使用["包含"和)排他性)以精确的50-50比例分开的测试将使用类似的比较
if (Math.random() >= 0.5) ...
Run Code Online (Sandbox Code Playgroud)
这是因为该分割的初始间隔[0,1)成两个相等的间隔[0,0.5)和[0.5,1).
通过比较,测试
if (Math.random() > 0.5) ...
Run Code Online (Sandbox Code Playgroud)
将间隔分成[0,0.5]和(0.5,1),它们具有相同的长度,但第一个是包含边界的,而第二个则不是.
在两个测试中边界是否以相同的方式包含在限制中并不重要,因为精度接近无限,但是对于所有有限精度,它会产生微小但可测量的差异.
假设精度限制是0.000001(十进制),那么>=0.5测试具有完全[0,0.499999]和[0.5,0.999999],并且很明显看到在第一个间隔中添加0.5(或从第二个间隔中减去它)使得两个间隔完全对齐.在另一方面,该精度下,该>0.5测试使得间隔[0,0.5]和[0.500001,0.999999]这显然有利于数字的不平等<=0.5.事实上,这个比例是500001:499999,这显然与50:50明显不同,但差异完全相同.
| 归档时间: |
|
| 查看次数: |
15517 次 |
| 最近记录: |