zoukankan      html  css  js  c++  java
  • php 实现简单抽奖

    首先有一组数据,里面有中奖的物品和概率

    $base_data = [
      ['name'=>'特等奖','num'=>1],
      ['name'=>'一等奖','num'=>5],
      ['name'=>'二等奖','num'=>20],
      ['name'=>'三等奖','num'=>50],
      ['name'=>'真遗憾','num'=>100]
    ];

    两种实现方法

    //根据num的个数生成一个数组,并合并
    //打乱数组,然后随机返回一个元素
    
    //计算概率1
    function data($arr){
      $return = [];
      foreach($arr as $key => $val){
        for($i = 0; $i < $val['num']; $i++){
          $return[] = $val['name'];
        }
      }
      shuffle($return);
      return $return[array_rand($return)];
    }
    $data = data($base_data);
    var_dump($data);
    //计算概率2
    function get_rand($arr){
      $sum = 0;
      $result = '';
      foreach($arr as $v){
        $sum += $v['num'];
      }
      foreach($arr as $val){
        $rand = mt_rand(1, $sum);
        if($rand <= $val['num']){
          $result = $val['name'];
          break;
        }else{
          $sum -= $val['num'];
        }
      }
      return $result;
    }



  • 相关阅读:
    jieba库的使用和词云
    类和正则表达
    数据库实践
    自己的第一个网页
    第一个爬虫和测试
    Linux 知识总结
    Python argparse模块基本用法
    Python面向对象编程
    linux Nginx发布基于PHP的WEB
    Linux nginx发布基于python的WEB环境
  • 原文地址:https://www.cnblogs.com/ilys/p/7802887.html
Copyright © 2011-2022 走看看