游戏需求,要求一定概率产生的动作,这个函数怎么写能高效

craboy1 2009-11-25 11:56:08
我在网上找了一个算法,觉得shuffle()和for都有点多余,
public function get_random($dot) {
$dot = intval($dot);
$dot = max($dot,0);
$dot = min($dot,100);

$one = rand(1,100);
$total = range(1,100);
shuffle($total);
$range = array();
for($i=0; $i<$dot; $i++) {
$range[] = $total[$i];
}
return in_array($one,$range);
}
改了一下,运行也正常。不知道逻辑有没有问题。
public function get_random2($dot) {
$dot = intval($dot);
$dot = max($dot,0);
$dot = min($dot,100);

$one = rand(1,100);
$total = range(1,$dot);
return in_array($one,$total);
}
还有大家有没有更好的算法???
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony-杨 2009-11-28
  • 打赏
  • 举报
回复
貌似写反了

function get_random2($dot){
return min(max(0, $dox),100) >= rand(1, 100);
}
function get_random2($dot){
return min(abs(intval($dox)),100) >= rand(1, 100);
}

tony-杨 2009-11-28
  • 打赏
  • 举报
回复
function get_random2($dot){
return rand(1, 100) >= min(max(0, $dox),100);
}
kingfly1818 2009-11-28
  • 打赏
  • 举报
回复
按你的意思就是先产生一个1到100之间的随机数,然后看这个随机数是否落在1到这个概率之间,貌似也是没问题的。。。。。。。。。。。。。。。。。。。。
数学没学好啊!!!!!!!!!!
kingfly1818 2009-11-28
  • 打赏
  • 举报
回复
明显逻辑错误

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧