ホームページ  >  記事  >  ウェブフロントエンド  >  JS は WeChat 赤封筒ランダム アルゴリズムを実装します (コード付き)

JS は WeChat 赤封筒ランダム アルゴリズムを実装します (コード付き)

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-15 11:47:164419ブラウズ

今回は、WeChat 赤い封筒のランダム アルゴリズムの JS 実装 (コード付き) を紹介します。WeChat の赤い封筒のランダム アルゴリズムを実装するための JS の 注意事項は何ですか。実際のケースを見てみましょう。 100 元の赤い封筒があり、10 人に送る必要があるとします。公平性を確保するために、アルゴリズムは次の原則を保証する必要があります:

    誰もが少なくとも0.01元を獲得できる
  • 誰もが平等な機会を持っている
  • 全員の金額の合計は100元に等しい

1. 単純なランダム

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

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

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

第 3 ステップ:...

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

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

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

注意深い人は、残高の値が間違っていることに気づくでしょう。これは

JavaScript

浮動小数点数演算の既知の問題です。 。もちろん、それを解決する方法はたくさんあります。良い解決策があれば、メッセージを残してください。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

vue は dom 内のクラスの使用法を決定します


コンパイル後に Vue プロジェクトを処理し、Web サイト以外のルート ディレクトリにデプロイする方法の詳細な説明


以上がJS は WeChat 赤封筒ランダム アルゴリズムを実装します (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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