Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Math.random()*50+Math.random()*20的分布与Math.random()*70的分布相比如何?_Javascript_Random_Statistics - Fatal编程技术网

Javascript Math.random()*50+Math.random()*20的分布与Math.random()*70的分布相比如何?

Javascript Math.random()*50+Math.random()*20的分布与Math.random()*70的分布相比如何?,javascript,random,statistics,Javascript,Random,Statistics,如何分配: var randomNumber = Math.random()*50 + Math.random()*20; 与之相比: var randomNumber = Math.random()*70; 您可以通过计算一百万个随机值,并检查总和r70s是否等于单个随机值r70,来执行蛮力方法 正如你所看到的,分布是不均匀的 函数countValuekey,value{ 值=Math.floorvalue; 计数[键][值]=计数[键][值]| | 0+1; } var i, r20,

如何分配:

var randomNumber = Math.random()*50 + Math.random()*20;
与之相比:

var randomNumber = Math.random()*70;

您可以通过计算一百万个随机值,并检查总和r70s是否等于单个随机值r70,来执行蛮力方法

正如你所看到的,分布是不均匀的

函数countValuekey,value{ 值=Math.floorvalue; 计数[键][值]=计数[键][值]| | 0+1; } var i, r20,r50,r70, 计数={r20:[],r50:[],r70:[],r70s:[]}; 对于i=0;i<1e6;i++{ r20=Math.random*20; r50=数学随机*50; r70=数学随机*70; countValue'r20',r20; countValue'r50',r50; countValue'r70',r70; countValue'r70s',r20+r50; } console.logcount;
.作为控制台包装器{max height:100%!important;top:0;}您可以通过计算一百万个随机值并检查总和r70s是否等于单个随机值r70来执行蛮力方法

正如你所看到的,分布是不均匀的

函数countValuekey,value{ 值=Math.floorvalue; 计数[键][值]=计数[键][值]| | 0+1; } var i, r20,r50,r70, 计数={r20:[],r50:[],r70:[],r70s:[]}; 对于i=0;i<1e6;i++{ r20=Math.random*20; r50=数学随机*50; r70=数学随机*70; countValue'r20',r20; countValue'r50',r50; countValue'r70',r70; countValue'r70s',r20+r50; } console.logcount;
.作为控制台包装器{max height:100%!important;top:0;}第一个将不会产生具有更多接近70/2的值的平坦分布,而第二个将产生均匀分布

找到答案的简单方法就是对值进行采样并绘制它们的图形

慢慢地采样只是为了好玩。 const ctx=canvas.getContext2d; 常数a1=新浮点数64阵列70; 常数a2=新浮点数64阵列70; var合计=0; 函数doSamplessamples{ forvar i=0;i<样本;i++{ var n1=Math.random*50+Math.random*20; var n2=数学随机*70; a1[n1 | 0]+=1; a2[n2 | 0]+=1; } var max=0; 因为i=0;i<70;i++{ max=Math.max,a1[i],a2[i]; } ctx.clearRect0,0,canvas.width,canvas.height; 因为i=0;i<70;i++{ var l1=a1[i]/max*canvas.height; var l2=a2[i]/max*canvas.height; ctx.fillStyle=蓝色; ctx.fillRecti*8,canvas.height-l1,4,l1 ctx.fillStyle=橙色; ctx.fillRecti*8+4,canvas.height-l2,4,l2 } 总数+=样本; count.textContent=总计; } 函数doit{ doSamples500; setTimeoutdoit,100; } 多伊特; 画布{边框:2px纯黑;} 橙色是随机的*70 蓝色为随机*50+随机*20 图形已归一化。
样本。第一种方法不会产生更接近70/2的平坦分布,而第二种方法会产生均匀分布

找到答案的简单方法就是对值进行采样并绘制它们的图形

慢慢地采样只是为了好玩。 const ctx=canvas.getContext2d; 常数a1=新浮点数64阵列70; 常数a2=新浮点数64阵列70; var合计=0; 函数doSamplessamples{ forvar i=0;i<样本;i++{ var n1=Math.random*50+Math.random*20; var n2=数学随机*70; a1[n1 | 0]+=1; a2[n2 | 0]+=1; } var max=0; 因为i=0;i<70;i++{ max=Math.max,a1[i],a2[i]; } ctx.clearRect0,0,canvas.width,canvas.height; 因为i=0;i<70;i++{ var l1=a1[i]/max*canvas.height; var l2=a2[i]/max*canvas.height; ctx.fillStyle=蓝色; ctx.fillRecti*8,canvas.height-l1,4,l1 ctx.fillStyle=橙色; ctx.fillRecti*8+4,canvas.height-l2,4,l2 } 总数+=样本; count.textContent=总计; } 函数doit{ doSamples500; setTimeoutdoit,100; } 多伊特; 画布{边框:2px纯黑;} 橙色是随机的*70 蓝色为随机*50+随机*20 图形已归一化。
样本。随机变量和的密度函数是和的密度函数的卷积

在这种情况下,两个求和函数的密度是一致的,因此它们的卷积是三角形的分段线性函数。一般来说,对于n个均匀变量的和,和的密度是n-1次的分段多项式


该和的期望值等于期望值之和,即50/2和20/2,这等于70/2,这是Math.random*70的期望值。因此,期望值相同,但分布不同。

随机变量和的密度函数是和的密度函数的卷积

在这种情况下,两个求和函数的密度是一致的,因此它们的卷积是三角形的分段线性函数。一般来说,对于n个均匀变量的和,和的密度是n次的分段多项式- 一,


该和的期望值等于期望值之和,即50/2和20/2,这等于70/2,这是Math.random*70的期望值。因此,期望值是相同的,但分布不同。

我想你会在stat.stackexchange.com中得到更好的答案,因为它只取决于数学属性,而不取决于任何特定的语言。试着问一下线性均匀分布*A+线性均匀分布*B=线性均匀分布*A+BEqual。a*b+c=Adam之后的ab+acRiese@Jonasw那是不对的。随机变量之和的分布是其密度函数的卷积,因此通常是不同的。适用于这种情况。两个分布的总和将更接近标准分布。我想你会在stat.stackexchange.com中得到更好的答案,因为它只取决于数学属性,而不取决于任何特定的语言。试着问一下线性均匀分布*A+线性均匀分布*B=线性均匀分布*A+BEqual。a*b+c=Adam之后的ab+acRiese@Jonasw那是不对的。随机变量之和的分布是其密度函数的卷积,因此通常是不同的。适用于这种情况。两个分布之和将更接近标准分布。