假设一个活动,假设设置12:00开始 ,13:00结束 在1个小时里总数1000,要让他13点的时候自动递减为0,怎样递减比较无规则的算法呢?所以的数值都是变量,怎样在相应的时间,相对的次数 。随机无所则递减呢各位大神各位前辈帮帮忙啊

解决方案 »

  1.   


    <?php
    $first = 1000; //总数
    $new = $first-1; //保证最后一次执行前不是0
    $pe = 60; //执行$pe次
    for($i = $pe-1;$i>=0;$i--){ //随机生成每次减少数
    $res = rand(0,($new-$i));
    $new = $new - $res;
    $arr[$i] = $res;
    }
    $arr[$pe] = $first-array_sum($arr); //保证最后一次执行后结果为0
    $a = 1000;
    foreach($arr as $k=>$v){ //计算最后结果
    $a -=$v;
    $ar[] =$a;
    }
    print_r($ar);//最后结果相应的时间不会,可能会有点复杂.
      

  2.   

    首先,你要有一个公共的容器,用来存放待递减的数据
    其次,要显得没有规律,那就要用随机数每次减少 = rand (0, 剩余数量);