javascript – PHP mt_rand是真的随机还是可能有偏见?
作者:互联网
我在我的网站上做过两次基本的A-B-C测试
if(mt_rand(0,2) == 0){
//THROW IN RE HERE
}elseif(mt_rand(0,2) == 1){
//THROW IN LR HERE
}else{
//THROW IN LB HERE
}
我期待这三个条件经常发生(占所有网页浏览量的33.3%).但是,展示次数(由Google Adsense衡量)显示了非常不同的分布.有趣的是,两个测试(下面的两个图表)显示了相似的模式:LB出现最多,然后是RE,然后是LR.
样本大小是数千,因此随机发生这种情况的可能性实际上为零.
我误解了mr_rand()吗?有人知道它是否经过了适当的测试?这些奇怪的模式怎么可能出现?
解决方法:
你正在运行mt_rand测试两次..你有选项0,1和2.如果测试是0,你抛出RE.如果没有,(即它是1或2),你再次运行相同的测试,(再次使用选项0,1和2).在那里你测试1,如果是,你扔LR.如果不是(它是0或2)你扔LB.如果你需要,我可以进一步解释..
$number = mt_rand(0,2);
switch ($number){
case 0:
//do re
break;
case 1:
//do lr
break;
case 2:
//do lb
break;
}
或者这也可以完成这项工作
if(mt_rand(0,2) == 0){
//THROW IN RE HERE
}elseif(mt_rand(0,1) == 1){ //we've stripped RE out, no longer deciding from 3 options
//THROW IN LR HERE
}else{
//THROW IN LB HERE
}
标签:php,javascript,random,adsense,ab-testing 来源: https://codeday.me/bug/20190611/1219031.html