|
我针对答案=TEXT(SUM(INT(RAND()*ABS(RAND()-{1,0})*80+10)*{100,1}),"0+00=")就提一个问题
其中的提取下SUM(INT(RAND()*ABS(RAND()-{1,0})*80+10)),表示两个加数的和
RAND由于易失性,两个不是同一个值,我们初步设为y*ABS(x-{1,0})*80 我们知道rand是大于等于0,小于1。
则原式可写为 = y*((1-x)+(x-0))*80+10=y*80+10 其结果理论上应该是大于等于10小于90
可实际测试发现 其有大于90的情况
也即是
rand-{1,0}处理过程中又出现了易失性,我们知道{1,0}是内存数组,是直接放在栈里的,也就是在RAND在和堆栈内数据进行交互的时候,如果是需要指针移动的,那么RAND也会易失
变为
= y*((1-x)+(z-0))*80+10
=(y-xy+zy)*80+10
这样的话就会造成一个函数式中出现3个易失变量
在x,y,z都∈[0,1)的情况下,显然最大值是x=0,z无限接近于1,y无限接近于1
其结果就是整体无限接近于2
那么2*80+10>>170
显然这个值多次运算并未出现,那么从数学角度来解释,为什么?能保证在100以内 |
|