PHP 概率计算显示问题

WBOY
Freigeben: 2016-06-23 14:03:30
Original
1030 Leute haben es durchsucht

我现在有2个数组:
$arr_str=array(1,3,2,3,5,2); //需要显示键值的数组
$chance_str=array(0.25,0.27,0.98,0.58,0.33,0.25); //显示数值的概率数组

现在每次访问页面的时候,值显示$arr_str中的一个键值,
每次显示这个键值的概率是$chance_str来控制,肯定会有总和大于100%的时候
这$chance_str的键值是会实时修改的,这个我该咋弄呢,各位大侠帮帮忙!


回复讨论(解决方案)

$chance_str
将这个数组每一个都 X100,确定每一个都是整数

然后把每个元素相加得 总和 $count

再生成一个随机数,0 - $count

看随机数在哪个区间

0-25则在第一区间
26 - (25+27) 第二区间
(25+27)+1 - (25+27+98) 第三区间,如此累推。。。。

echo array_sum($chance_str); //2.66
无论怎么做都不可能完成这样的概率分布

问题是你的概率是怎么定的?定义的方法不同自然就不同

如果每次只显示一个数,全部完成为1.00,则属于不可能的任务,而且有个0.98简直就是离谱

但如果每次显示多个数,还是有可能做到的
就是“概率”的概念转为“权重”的概念,权重总和可以>1,也可以有权重叠加的情况

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!