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;
        }
    
    
  • 相关阅读:
    Queue
    Singly-Linked List
    Array
    HTTP请求详解
    封装element的API
    uniapp登录逻辑
    Selector学习笔记 (未完待续)
    <Scalable IO in Java>学习
    Spring PropertyMapper源码阅读笔记
    leetcode 字节跳动探索系列
  • 原文地址:https://www.cnblogs.com/lalalagq/p/10203131.html
Copyright © 2011-2022 走看看