当前位置: 首页 > 编程笔记 >

微信红包随机生成算法php版

东门越
2023-03-14
本文向大家介绍微信红包随机生成算法php版,包括了微信红包随机生成算法php版的使用技巧和注意事项,需要的朋友参考一下

想了想,自己写写php版的微信红包随机生成算法,能不能实现类似的功能(其实也不敢说是算法)。
// $bonus_total 红包总金额
// $bonus_count 红包个数
// $bonus_type 红包类型 1=拼手气红包 0=普通红包

function randBonus($bonus_total=0, $bonus_count=3, $bonus_type=1){
  $bonus_items  = array(); // 将要瓜分的结果
  $bonus_balance = $bonus_total; // 每次分完之后的余额
  $bonus_avg   = number_format($bonus_total/$bonus_count, 2); // 平均每个红包多少钱
  $i       = 0;
  while($i<$bonus_count){
    if($i<$bonus_count-1){
      $rand      = $bonus_type?(rand(1, $bonus_balance*100-1)/100):$bonus_avg; // 根据红包类型计算当前红包的金额
      $bonus_items[] = $rand;
      $bonus_balance -= $rand;
    }else{
      $bonus_items[] = $bonus_balance; // 最后一个红包直接承包最后所有的金额,保证发出的总金额正确
    }
    $i++;
  }
  return $bonus_items;
}

好吧,我们现在来体验一下

// 发3个拼手气红包,总金额是100元
$bonus_items  = randBonus(100, 3, 1);
// 查看生成的红包
var_dump($bonus_items);
// 校验总金额是不是正确,看看微信有没有坑我们的钱
var_dump(array_sum($bonus_items));

另一个使用数组实现的版本,原理差不多:

function sendRandBonus($total=0, $count=3, $type=1){
  if($type==1){
    $input     = range(0.01, $total, 0.01);
    if($count>1){
      $rand_keys = (array) array_rand($input, $count-1);
      $last    = 0;
      foreach($rand_keys as $i=>$key){
        $current  = $input[$key]-$last;
        $items[]  = $current;
        $last    = $input[$key];
      }
    }
    $items[]    = $total-array_sum($items);
  }else{
    $avg      = number_format($total/$count, 2);
    $i       = 0;
    while($i<$count){
      $items[]  = $i<$count-1?$avg:($total-array_sum($items));
      $i++;
    }
  }
  return $items;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍微信随机生成红包金额算法java版,包括了微信随机生成红包金额算法java版的使用技巧和注意事项,需要的朋友参考一下 最近几年玩得最疯狂的应该是发红包了,尤其是过年的时候特别受欢迎,下面写了红包的随机算法,其实挺简单的,仅是提供一种思路,希望可以给大家一些启发。  后来又在网上搜集了一些微信随机生成红包算法,供大家参考。 这里一个基本思路是这样的:首先算出红包的平均值,再通过一个随机

  • 本文向大家介绍PHP微信红包生成代码分享,包括了PHP微信红包生成代码分享的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了PHP微信公众号自动发送红包API代码,分享给大家供大家参考。具体如下: 贴出核心接口代码至于数据自己填写,接口测试OK wechat_packet.php 数组转xml:arraytoxml.php 重写了一下PHP下面的微信API接口, 微信红包支持,JSAP

  • 本文向大家介绍PHP实现的随机红包算法示例,包括了PHP实现的随机红包算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现的随机红包算法。分享给大家供大家参考,具体如下: 一、整体设计 算法有很多种, 可以自行选择, 主要的"架构" 是这样的, 用redis decr()命令去限流, 用mysql去记录各种需要的数据 二、红包算法 简便起见, 红包金额用整数表示, 假设每个红

  • 本文向大家介绍java微信红包实现算法,包括了java微信红包实现算法的使用技巧和注意事项,需要的朋友参考一下 随着目前微信越来越火,所以研究微信的人也就越来越多,这不前一段时间,我们公司就让我做一个微信公众号中问卷调查发红包功能,经过一段时间的研究,把功能完成,里面主要的实现步骤都是按照微信公众号开发文档来的,很详细,在整个过程唯有红包算法需要仔细编写,因为毕竟涉及到钱,所以得小心,而且不仅微信

  • 本文向大家介绍python 实现红包随机生成算法的简单实例,包括了python 实现红包随机生成算法的简单实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇python 实现红包随机生成算法的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Python版微信红包分配算法,包括了Python版微信红包分配算法的使用技巧和注意事项,需要的朋友参考一下 红包分配算法代码实现发给大家,祝红包大丰收! python 2.py 0.01 10 20 30 0.01 10 20 30 第1个人拿到红包数为:1.34, 余额为: 18.66 第2个人拿到红包数为:1.06, 余额为: 17.60 第3个人拿到红包数为:1.08, 余额