ホームページ > バックエンド開発 > PHPチュートリアル > PHP 赤封筒開封アルゴリズムの簡単な分析

PHP 赤封筒開封アルゴリズムの簡単な分析

藏色散人
リリース: 2023-04-10 07:58:02
転載
4617 人が閲覧しました

この記事では、PHP の赤封筒開封アルゴリズムについて簡単に分析します。これには一定の参考値があります。困っている友人は参考にしてください。すべての人に役立つことを願っています。

PHP レッド パケット分割アルゴリズム

コードは次のとおりです:

/**
     * 拆分红包
     * @param SendRedPackageRequest $request
     * @return array
     */
    protected function spitMoney(SendRedPackageRequest $request)
    {
        $result = [];
        $reamingMoney = $request->money;
        for ($i = $request->count; $i >= 1; $i--) {
            if ($i === 1) {
                $result[] = round($reamingMoney, 2);
                $reamingMoney = 0;
            } else {
                $average = round(bcdiv($reamingMoney, $i), 2);    //平均值
                $amount = round(mt_rand(1, $average * 199) / 100, 2);
                $reamingMoney = doubleval(bcsub($reamingMoney, $amount));
                $result[] = round($amount, 2);
            }
        }
        return $result;
    }
ログイン後にコピー

ロジックは比較的単純で、分割量と分割数を入力します。

最初に分割する数量をサイクルし、最後の数量である場合は、残りの金額をすべてその数量に入れます。

## そうでない場合は、残りの金額 (最初の数量の残りの金額) を受け取ります。サイクル = 合計量) を残りの時間で割って平均を取得し、ランダムに最小の 0.01 と平均 * 2 を選択して、残りの量を更新するだけです。

このアルゴリズムは WeChat の赤い封筒分割アルゴリズムをシミュレートしますが、これは事前に計算されて保存されており、WeChat は毎回動的に計算します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP 赤封筒開封アルゴリズムの簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:learnku.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート