随机数,游标卡尺。

一个大饼,随机到哪个坑里,就中哪个奖。

大转盘!

公平公正!

// 获取锦鲤
public function getGoldPig() {
$pig_gift_bag = [
[
'id' => 1,
'name' => '小金猪',
'weight' => 1000
],
[
'id' => 2,
'name' => '中金猪',
'weight' => 100
],
[
'id' => 3,
'name' => '大金猪',
'weight' => 10
],
[
'id' => 4,
'name' => '超大金猪',
'weight' => 1
],
[
'id' => 5,
'name' => '抱歉,下次就中了',
'weight' => 10000
],
]; foreach ($pig_gift_bag as $key => $val) {
$giftWeightArr[$val['id']] = $val['weight'];
} for ($i=0;$i<10;$i++) {
$gid = $this->getLuckyGift($giftWeightArr); //根据概率获取奖项id
dump($pig_gift_bag[$gid-1]['name']);
} } function getLuckyGift($giftWeightArr) {
$result = ''; //概率数组的总概率精度
$sumWeight = array_sum($giftWeightArr); //计算数组中元素的和
$luckyNum = mt_rand(1, $sumWeight);
//概率数组循环
$beginCursor = $endCursor = 0;
foreach ($giftWeightArr as $gid => $weight) {
$beginCursor = $endCursor;
$endCursor += $weight; if ($luckyNum > $beginCursor && $luckyNum <= $endCursor) {
$result = $gid;
break;
}
}
return $result;
}
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(24) "抱歉,下次就中了"
string(9) "小金猪"
string(24) "抱歉,下次就中了"
string(9) "小金猪"

有点意思哦!

PHP概率,抽奖的更多相关文章

  1. 前端+php实现概率抽奖

    转前端之后,后台工程师大大跑路了只能兼任他的位置写点东西了 前端+后台抽奖代码网上一大堆,引用一位仁兄前面的代码(比较懒抱歉,后面数据处理,奖项判断是否抽完我将会标红,因为前面的代码网上太多了都能找到 ...

  2. jquery抽奖插件+概率计算

    写了一个抽奖的jquery插件和计算概率的方法, 结合起来就是一个简单的概率抽奖, 不过实际项目中基本不会把抽奖概率的计算放在前端处理~. demo lottery.jquery.js $.fn.ex ...

  3. JAVA基于权重的抽奖

    https://blog.csdn.net/huyuyang6688/article/details/50480687 如有4个元素A.B.C.D,权重分别为1.2.3.4,随机结果中A:B:C:D的 ...

  4. PHP新写的大转盘抽奖源码

    中奖概率 抽奖大转盘演示:http://www.sucaihuo.com/php/3301.html function getRand($proArr, $proCount) { $result = ...

  5. php抽奖程序

    //php概率抽奖算法 1.获取总的概率数 2.随机从1到总概率数 3.判断获取的随机数是否在小于等于(就是你随机的数是否在数组值得范围中比如数组为array(1,2,3,4,5,6)则随机出了一个数 ...

  6. 实例--post请求,完成一个抽奖程序概率的测试

    一个web项目测试,测试抽奖概率的正确性,写了一个小代码,验证概率 post和get请求的一个工具类 package kankan_interface; import java.io.IOExcept ...

  7. js转盘大抽奖 自定义概率

    公司项目搞优惠活动,让做一个转盘抽奖的活动,转盘抽奖让他转起来 按照概率停止其实都麻烦,但是概率如果设置在前端就会很大的安全漏洞,所以无论为了安全性还是后期的维护问题都要把概率写到后台配置里然后读取配 ...

  8. php抽奖概率程序

    抽奖概率思想: 1.给每一个奖项设置要给概率数,如下面所有奖品综合设置为100,iphone5s是5,也就是5% 2.然后通过php生成随机数函数生成一个在总概率之间的随机数 如:抽第一个奖品5s的时 ...

  9. js抽奖概率随机取出数据(简单示例)

    在平常活动开发当中,经常会碰到抽奖等类似的js功能,那么下面我们随机取数组中的一条来展示出来. ( 一 ) 无概率问题 var gift_ = ['apple pro一台','iphoneX一台',' ...

  10. JS简单实现:根据奖品权重计算中奖概率实现抽奖的方法

    本文主要介绍:使用 JS 根据奖品权重计算中奖概率实现抽奖的方法. 一.示例场景 1.1.设置抽奖活动的奖项名称 奖项名称:["一等奖", "二等奖", &qu ...

随机推荐

  1. soapUI-DataGen

    1.1.1  DataGen 1.1.1.1 概述 – DataGen DataGen TestStep可用于生成要用作TestCases中的输入的数据,例如数字或日期序列,随机选择等.生成的数据可作 ...

  2. nodejs加WebSocket,聊天工具

    1.WebSocket必须要与服务器连接,所以这里采用node起服务,这里用到了ws,,也有人用nodejs-websocket 2.首先 npm install ws 3.新建一个server.js ...

  3. C#webBrowser使用代理服务器的方法winform

    其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧.这个其实是调用一个Dll文件进行设置的, ...

  4. CNN实现垃圾邮件分类(行大小不一致要补全)

    以下是利用卷积神经网络对某一个句子的处理结构图 我们从上图可知,将一句话转化成一个矩阵.我们看到该句话有6个单词和一个标点符号,所以我们可以将该矩阵设置为7行,对于列的话每个单词可以用什么样的数值表示 ...

  5. MVC5 新建项目里不包含jquery.unobtrusive-ajax.js(MVC5异步表单的问题)解决方法

    Asp.NET MVC 5 高级编程第5版.pdf 中有解决方法: 用NUGET程序包管理器控制台安装下面这两个文件 Install-Package jQuery –version 1.10.2 In ...

  6. unity3d-编辑器结构

    1.Porject视图 Project视图主要存放游戏中用到的所有资源文件,常见的资源包括: 游戏脚本.预设.材质.动画.自定义字体.纹理.物理材质和GUI皮肤.这些资源需要 赋予Hierarchy视 ...

  7. 利用lodop打印控件轻松实现批量打印 (转载http://www.thinkphp.cn/topic/13085.html)

    最近在做一个打印程序,要实现批量打印功能,在网上找了很多天,也在tp官网咨询大牛们,对大家的的提议我一一进行了研究,总结如下: 要实现批量打印可以有两个办法: 一是利用专业的报表程序,能实现十分复杂的 ...

  8. 提高php代码质量的36个技巧的摘录

    17.不要直接使用 $_SESSION 变量 简单例子: $_SESSION['username'] = $username; $username = $_SESSION['username'];   ...

  9. c#中ref和out使用及区别

    在c#中,使用方法获得返回值时,只能获取一个返回值.当使用ref和out关键字后,可以获取多个返回值. MSDN对ref和out关键字的说明如下: ref 关键字: 使参数按引用传递.其效果是,当控制 ...

  10. jQuery delay() 方法

    定义和用法 delay() 方法对队列中的下一项的执行设置延迟. 语法 $(selector).delay(speed,queueName) 参数 描述 speed 可选.规定延迟的速度. 可能的值: ...