日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php 随机钱数,PHP 仿微信红包金额随机

發布時間:2023/12/2 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 随机钱数,PHP 仿微信红包金额随机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

博主寒冰最近閑來無事。就想研究一下微信紅包的金額隨機算法。早在微信紅包剛出來的時候就研究過。始終不得要領。后來,通過查閱諸多資料。聽說要實現“正態分布”。這個理論的東西不想深挖。恰好在網上一篇博客找到一個相對完整的算法。我經過試用確實不錯。經過我的一些優化達到了可用級別。

PHP 源碼如下:

class RandMoney

{

/**

* 紅包金額(元)

*

* -- 最小值:0.01。

*

* @var float

*/

private $rewardMoney;

/**

* 紅包數量

*

* @var int

*/

private $rewardNum;

/**

* 分散度值

*

* -- 1 ~ 10000

* --- 最佳值 100

*

* @var int

*/

private $scatter;

/**

* 執行紅包生成算法

*

* @param float $rewardMoney 隨機總金額。

* @param int $rewardNum 拆分數量。

* @param int $scatter 分散度值。

* @return void

*/

public function splitReward($rewardMoney, $rewardNum, $scatter = 100)

{

// 傳入紅包金額和數量。

$this->rewardMoney = $rewardMoney;

$this->rewardNum = $rewardNum;

$this->scatter = $scatter;

$this->realscatter = $this->scatter / 100;

$avgRand = round(1 / $this->rewardNum, 4);

$randArr = [];

while (count($randArr) < $rewardNum) {

$t = round(sqrt(mt_rand(1, 10000) / $this->realscatter));

$randArr[] = $t;

}

$randAll = round(array_sum($randArr) / count($randArr), 4);

$mixrand = round($randAll / $avgRand, 4);

$rewardArr = [];

foreach ($randArr as $key => $randVal) {

$randVal = round($randVal / $mixrand, 4);

$rewardArr[] = round($this->rewardMoney * $randVal, 2);

}

sort($rewardArr);

$rewardAll = array_sum($rewardArr);

$rewardArr[$this->rewardNum - 1] = round($this->rewardMoney - ($rewardAll - $rewardArr[$this->rewardNum - 1]), 2);

rsort($rewardArr);

return $rewardArr;

}

}

調用:

$money = 100; // 總額。

$people = 200; // 紅包個數。

$scatter = 100; // 分散度。就是拆成的金額分頁更大。

$reward = new RandMoney();

$rewardArr = $reward->splitReward($money, $people, $scatter);

print_r($rewardArr);

大家可以執行一下試試。

總結

以上是生活随笔為你收集整理的php 随机钱数,PHP 仿微信红包金额随机的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。