zoukankan      html  css  js  c++  java
  • php微信红包算法


    微信红包算法.php

    
    /**生成红包的函数*/
    function getRandMoney($totalMoney, $totalPeople=2, $miniMoney=1){
     
            $randRemainMoney = $totalMoney - $totalPeople * $miniMoney;//剩余需要随机的钱数
            return _getRandMoney($randRemainMoney, $totalPeople, $miniMoney);
        }
     
    /**红包生成的逻辑代码*/
    function _getRandMoney($totalMoney, $totalPeople, $miniMoney){
     
            $returnMessage = array('status'=>1, 'data'=>NULL);
            if($totalMoney > 0){
                $returnMessage['data'] = _randMoney($totalMoney, $totalPeople, $miniMoney);
            }elseif($totalMoney == 0){
                $returnMessage['data'] = array_fill(0, $totalPeople, 1);
            }else{
                $returnMessage['status'] = -1;
                $returnMessage['data'] = '参数传递有误,生成红包失败';
            }
     
            return $returnMessage;
        }
     
    /*参数无误,开始生成对应的红包金额*/
    function _randMoney($totalMoney, $totalPeople, $miniMoney){
     
            $data = array_fill(0, $totalPeople, $miniMoney);
            if($totalPeople > 1){
                foreach($data as $k => $v){
                    if($k == $totalPeople -1){
                        $data[$k] = $totalMoney + $v;
                        break;
                    }else {
                        if($totalMoney == 0) break;
                        $randMoney = rand(0, $totalMoney);
                        $totalMoney -= $randMoney;
                        $data[$k] = $randMoney + $v;
                    }                
                }
            }
            return $data;
        }
    
    
  • 相关阅读:
    k8s之StatefulSet介绍(六)
    k8s之Deployment 声明式地升级应用(五)
    k8s 挂载卷介绍(四)
    k8s 之service资源介绍(三)
    k8s几种pod的控制器
    k8s 初识pod (二)
    k8s的常用命令(一)
    k8s 学习笔记
    aws centos系统磁盘扩容
    mac更改launchpad图标大小
  • 原文地址:https://www.cnblogs.com/lalalagq/p/10203131.html
Copyright © 2011-2022 走看看