资讯专栏INFORMATION COLUMN

PHP 与 JS 中奖概率算法

Ali_ / 1607人阅读

摘要:经典的概率算法。假设对应中奖几率特等奖,一等奖,二等奖,三等奖,总共。比较和,如果在概率范围之内,则直接返回对应的。如果不在,则将概率空间的值减去值。这个算法简单,而且效率非常高。

经典的概率算法。

现在有数组:[10, 20, 30, 40] 。

假设对应中奖几率:特等奖10%,一等奖20%,二等奖30%,三等奖40%,总共100%。

算法开始时,从数组中选出一个值$value,再从1-100概率空间内随机选出一个数$rand。

比较$value和$rand,如果$rand在$value概率范围之内,则直接返回$value对应的key。

如果不在,则将概率空间的值减去$value值。

在本例中,第一次判断之后,就是减去10,也就是说第二次是在1-90这个范围内筛选的。

这样筛选到最后,总会有一个数满足要求。

就相当于去一个箱子里摸东西,

第一个不是,第二个不是,第三个还不是,那最后一个一定是。

这个算法简单,而且效率非常高。

PHP实现
 $value) {
            $rand = mt_rand(1, $sum);
            if ($rand <= $value) {
                $result = $key;
                break;
            } else {
                $sum -= $value;
            }
        }
        unset ($arr);
        return $result;
    }
使用范例:

$a = [10, 20, 30, 40];
// 输出3的概率最大
echo "PHP:" . getRand($a);
Javascript实现

使用范例:

    // 使用示例,输出3的概率最大
    var a = [10, 20, 30, 40];
    document.write("
Javascript:" + getRand(a));

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28925.html

相关文章

  • PHP JS 中奖概率算法

    摘要:经典的概率算法。假设对应中奖几率特等奖,一等奖,二等奖,三等奖,总共。比较和,如果在概率范围之内,则直接返回对应的。如果不在,则将概率空间的值减去值。这个算法简单,而且效率非常高。 经典的概率算法。 现在有数组:[10, 20, 30, 40] 。 假设对应中奖几率:特等奖10%,一等奖20%,二等奖30%,三等奖40%,总共100%。 算法开始时,从数组中选出一个值$value,再从...

    lewinlee 评论0 收藏0
  • jQuery+PHP实现砸金蛋抽奖

    摘要:演示下载地址效果图三个金蛋一把锤子及中奖结果代码如下锤子当鼠标滑向金蛋时,锤子会仅靠金蛋右上方,通过来控制位置。当挥动锤子砸向金蛋前,我们先把金蛋中的数字编号隐藏起来。最后,我们向后台发送一个请求,后台程序会处理奖项分配并把中奖结果返回。 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.co...

    Invoker 评论0 收藏0
  • jQuery+PHP实现砸金蛋抽奖

    摘要:演示下载地址效果图三个金蛋一把锤子及中奖结果代码如下锤子当鼠标滑向金蛋时,锤子会仅靠金蛋右上方,通过来控制位置。当挥动锤子砸向金蛋前,我们先把金蛋中的数字编号隐藏起来。最后,我们向后台发送一个请求,后台程序会处理奖项分配并把中奖结果返回。 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.co...

    kaka 评论0 收藏0
  • jQuery+PHP实现砸金蛋抽奖

    摘要:演示下载地址效果图三个金蛋一把锤子及中奖结果代码如下锤子当鼠标滑向金蛋时,锤子会仅靠金蛋右上方,通过来控制位置。当挥动锤子砸向金蛋前,我们先把金蛋中的数字编号隐藏起来。最后,我们向后台发送一个请求,后台程序会处理奖项分配并把中奖结果返回。 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.co...

    xuhong 评论0 收藏0
  • jQuery+PHP实现砸金蛋抽奖

    摘要:演示下载地址效果图三个金蛋一把锤子及中奖结果代码如下锤子当鼠标滑向金蛋时,锤子会仅靠金蛋右上方,通过来控制位置。当挥动锤子砸向金蛋前,我们先把金蛋中的数字编号隐藏起来。最后,我们向后台发送一个请求,后台程序会处理奖项分配并把中奖结果返回。 演示下载地址:http://www.erdangjiade.com/js...效果图:showImg(https://segmentfault.co...

    genedna 评论0 收藏0

发表评论

0条评论

Ali_

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<