PHP随机生成双色球码

一个双色球随机数的生成方法,比较近十期的中奖号码,排除多次出现的号码
public function doubleBall(){
        //数组
        $ball['red'] = [];
        $ball['blue'] =[];
        $count =  0;
        //随机去除最近十期的球数,此处可以用个接口或者爬虫获取
        //最近十期红球
        $last_red=[
            [3,11,18,25,30,33],
            [3,7,10,12,18,29],
            [3,10,13,22,23,28],
            [4,6,10,11,21,23],
            [8,9,10,13,15,28],
            [3,6,9,13,16,19],
            [4,16,22,25,29,31],
            [7,10,11,15,24,26],
            [1,6,11,15,19,31],
            [13,14,17,19,21,29],
        ];
        //最近十期蓝球
        $last_blue=[14,10,15,2,9,16,8,11,10,1];
        //生成6位数
        do{
            $rand_red = rand(1,33);
            $appear = 0; //出现次数
            $contiue = 0; //连续出现次数
            //根据过往十期判断出现次数超过三次的忽略,连续超过两次的忽略
            foreach ($last_red as $key => $val){
                if (in_array($rand_red,$val)){
                    $appear++;
                    if ($key>0){
                        if (in_array($rand_red,$last_red[$key-1]))
                        $contiue++;
                    }
                }
            }
            //加入数组 十期判断出现次数超过三次的忽略,连续超过两次的忽略
            if (!in_array($rand_red,$ball['red'])&&$appear<3&&$contiue<2){
                $ball['red'][] = $rand_red;
            }
            //判断数量
            $count = count($ball['red']);
            if ($count == 6){
                $type = 0;
            }else{
                $type = 1;
            }
        }while($type);
        //冒泡排序
        for ($i =0;$i<count($ball['red']);$i++){
            for ($j = $i+1;$j<count($ball['red']);$j++){
                if ($ball['red'][$i]>$ball['red'][$j]){
                    $item = $ball['red'][$j];
                    $ball['red'][$j] = $ball['red'][$i];
                    $ball['red'][$i] = $item;
                }
            }
        }
        //随机蓝色球
        $rand_blue = 0;
        do{
            $rand_blue =  rand(1,16);
            if (!in_array($rand_blue,$last_blue)){
                $type = 0;
            }else{
                $type = 1;
            }
        }while($type);
        //随机蓝球
        $ball['blue'] = $rand_blue;
        $red = implode($ball['red'],',');
        print_r('红球:'.$red.'   蓝球:'.$ball['blue']);
    }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
php双色球在线机选程序V1.0(支持复式机选) 运行环境: php5.0及以上 安装方法: 上传所有文件到服务器. 本人平生也经常购买福彩双色球,本人不相信所谓的规律,我只相信运气。 所以每次选号都是直接机选。后来时间长了,我觉得福彩的那个售票系统的机 选程序不够强大,应该也不是严格意义上的机选。所以决定用php写一个机选 的程序,于是自已起草了程序的基本需求如下: 分析双色球的玩法规则: 其实就是红色和蓝色组成的一组号,红色的 数字范围为1~33,蓝色的范围为1~16,所以机选双色球的程序要考虑以下内容 : 1. 先机选出红色部份,也就是在数字1~33之间,随机取6个数字,而且这6个 数字不能重复,最后对这6个数字进行从小到大进行排序。这时候,我们已经产 生了双色球部份的6个号。当然,如果是复式机选,红的个数则是 7~20个,所以如果是复式机选的话,红色的个数根据具体的个数在1~33中产 生具体个数的红色号. 2.然后再机选出蓝色部份,也就是在数字1~16范围内,随机取1个数字.当然 如果是复式机选,则相应产生多个蓝色,也就是在数字1~16范围内,产生多 个不重复的号 3.组合机选出来的红色和蓝色的号,合并后进行输出。这样一注双色球 就产生了。 程序的核心算法和原理: 1.机选的实现: 红色部份,先将1~33这33个常数放在一个数组中,也就是这个数组中有33个 数组元素,然后将这个数组元素的排列,使用函数将其随机打乱,最后截取某 一段。 2.用户单式和复式的判断,以及用户注数的判断使用GET模式的URL传值进行赋 值。 本程序原是本人自用的程序,如果错误或BUG,请真指正。现将本程序进行开 放源代,方便有需要有人进行使用和改进。 程序演示地址: http://www.12580.info/cp/ssq 程序的下载地址: 说明:如对CSS有造诣的同事,可以帮忙修改一下表单和网页样式,使其美观。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值