zoukankan      html  css  js  c++  java
  • 一个超级简单红包算法

      

      

    <?php
     
     
    $pack_num = 10;//红包数
    $money = 100;//总钱数
    //规则  1分钱是1     1元是100
    $min = 1;//最小 不使用小数,写1 应该是0.01
    $max = 100/10*2*100; //最大,注意,结果要/100
    $packs = [];
    $max1 = 0.01;;
    for ($i=0; $i<$pack_num -1; $i++)
    {
        $x = mt_rand($min,$max) / 100;//这里除以100就还原了 1分是0.01  1元 是1
        if ($x > $max1) //找到分的最多的一个人.
        {  
            $max1 = $x;
            $max_index = $i;
        }
        $money -= $x;
        $packs[$i] = $x;
    }
    $packs[] = $money;//最后剩下的一个
    if ($money < 0.01){//钱不够分的,出现低于最低标准的 这个一般是最后一个. 与最高分平均一下 2者一样的钱即可
        $avg = ($money + $max1 )/2;
       $packs[$pack_num - 1] = $avg;
       $packs[$max_index] =  $avg;
    }
    //入队 a队
    var_dump($packs);
    //出队原理
    //a队出列,b队入列.  b队内容为    抢到的用户id,钱数,时间
  • 相关阅读:
    Python3 学习第八弹: 模块学习一之模块变量
    Python3 学习第六弹: 迭代器与生成器
    Python3 学习第五弹:类与面向对象
    Java之泛型
    Java之工具类Collections
    Java之map
    Java集合之List
    Java集合之TreeSet
    Java集合
    Java异常处理
  • 原文地址:https://www.cnblogs.com/yyjie/p/7209715.html
Copyright © 2011-2022 走看看