ホームページ >ウェブフロントエンド >jsチュートリアル >JS を使用して WeChat 赤い封筒アルゴリズムを実装する方法

JS を使用して WeChat 赤い封筒アルゴリズムを実装する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-06-02 10:17:521873ブラウズ

今回は、JSを使用してWeChat紅包アルゴリズムを実装する方法と、JSを使用してWeChat紅包アルゴリズムを実装する際の注意事項を説明します。以下は実際的なケースです。見てみましょう。 。

100 元の赤い封筒があり、10 人に送る必要があるとします。公平性を確保するために、アルゴリズムは次の原則を保証する必要があります:

  • 誰もが少なくとも0.01元を獲得できる

  • 誰もが平等な機会を持っている

  • 全員の金額の合計は100元に等しい

1. 単純なランダム 関数の実装

多くの友人の一般的なアイデアは次のとおりです:

ステップ 1: 0 ~ 100 の数字をランダムに選択して、最初の赤い封筒の金額を取得します。

ステップ 2: 0 から残額までの数字をランダムに選択して、2 番目の赤い封筒の金額を取得します。

第 3 ステップ:...

最後のステップは、残りのお金を最後の人に渡すことです。

など、赤い封筒を10枚すべて入手してください。しかし、これが明らかに不公平であることにあなたが気づいたかどうかはわかりません。先に掴んだ人が有利で、最初の人のランダム範囲は 0 ~ 100 で、より多くの金額を獲得できる可能性があります。最後の人のランダム範囲は非常に小さくなります。最初の人が 90 元を獲得した場合、最後の人は 10 元を超える可能性はありません。このプロセスをコードでシミュレートしてみましょう:

テスト結果は次のとおりです:

注意深い人は、残高の値が間違っていることに気づくでしょう。これは JavaScript 浮動小数点数演算の既知の問題です。 。もちろん、それを解決する方法はたくさんあります。良い解決策があれば、メッセージを残してください。

この記事の事例を読んだ後は、その方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue でフィルターを使用する方法

vue を使用して dom のクラスを決定する方法

以上がJS を使用して WeChat 赤い封筒アルゴリズムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。