脚本宝典收集整理的这篇文章主要介绍了php 生成一批随机数 随机数之合为一个值,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?php
/**
* @param $count 随机数个数
* @param $sum 随机数总和
* @param $mix 最小随机数
* @param $max 最大随机数
*
*/
function @H_406_27@getRand($count,$sum,$mix,$max){
ini_set('memory_limit', "1024M");
$i=1;
while ($i <= $count) {
$tmp[] = mt_rand($mix,$max);
$i++;
}
$k = $sum / array_sum($tmp);
$res = [];
foreach ($tmp as $v) {
$res[] = (int) ($v*$k);
}
$assoc = $sum - array_sum($res);
$last = array_pop($res);
$res[] = $last + $assoc;
while (max($res) > $max) {
$tmax = max($res);
$key = array_search($tmax, $res);
if($key !== false){
$res[$key] = mt_rand($mix,$max);
$k = array_search( min($res), $res);
$res[$k] = $tmax - $res[$key] + min($res);
}
}
return $res;
}
$res = getRand(300,400000,300,2000);
var_dump(count($res));
var_dump($res[1]);
var_dump(array_sum($res));
以上是脚本宝典为你收集整理的php 生成一批随机数 随机数之合为一个值全部内容,希望文章能够帮你解决php 生成一批随机数 随机数之合为一个值所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。