首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP实现微信红包金额拆分试玩的算法示例

PHP实现微信红包金额拆分试玩的算法示例

作者头像
用户8660814
修改2021-07-13 11:32:00
6190
修改2021-07-13 11:32:00
举报

本文介绍了PHP实现微信红包金额拆分试玩的算法示例,分享给大家,有兴趣的可以看一下:

<?php

// 新年红包金额拆分试玩

class CBonus

{

public $bonus;//红包

public $bonus_num;//红包个数

public $bonus_money;//红包总金额

public $money_single_max;//单个红包限额

public function __construct(){

$this->bonus_num = 10;

$this->bonus_money = 200;

$this->money_single_max = 60;

}

private function randomFloat($min = 0, $max = 1) {

$mt_rand = mt_rand();

$mt_getrandmax = mt_getrandmax();

echo 'mt_rand=' . $mt_rand . ', mt_getrandmax=' . $mt_getrandmax . '<hr/>';

return $min + $mt_rand / $mt_getrandmax * ($max - $min);

}

//计算

public function compute()

{

$this->bonus = array();

$bonus_mon/**【技术点,其实还需要更多地实践】**/ey_temp = $this->bonus_money;

$money_single_max = $this->money_single_max;

$i = 1;

while($i &lt; $this->bonus_num)

{

if ($money_single_max &gt; $bonus_money_temp)

{

$money_single_max = floatval(sprintf("%01.2f", $bonus_money_temp / 2));//剩余金额不够分时,把剩余金额的一半作为备用金

}

$bonus_money_rad = $this->randomFloat(0.01, $money_single_max);//一个红包随机金额 最小的1分钱

$bonus_money_rad = floatval(sprintf("%01.2f", $bonus_money_rad));

$bonus_money_temp = $bonus_money_temp - $bonus_money_rad ;//待分配的总剩余金额

$bonus_money_temp = floatval(sprintf("%01.2f", $bonus_money_temp));

$this-&gt;bonus[] = $bonus_money_rad;

//echo $bonus_money_rad . ',' . $bonus_money_temp . '<hr/>';

$i++;

}

$this-&gt;bonus[] = $bonus_money_temp;//分配剩余金额给最后一个红包

}

//打印

public function output(){

$total = 0;

foreach($this-&gt;bonus as $k => $v)

{

echo '红包' . ($k+1) . '=' . $v . '<br/>';

$total += $v;

}

echo '红包总金额:'.$total;

}

}

$CBonus = new CBonus();

$CBonus->compute();

$CBonus->output();

?>

演示结果:

红包1=12.36

红包2=24.37

红包3=42.71

红包4=36.92

红包5=25.84

红包6=23.17

红包7=15.92

红包8=1.35

红包9=7.75

红包10=9.6/

/1

红包总金额:200

 

红包1=24.59

红包2=17.66

红包3=29.67

红包4=32.34

红包5=12.67

红包6=37.15

红包7=17.41

红包8=15.23

红包9=6.13

红包10=7.15

红包总金额:200

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

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档