Javaは4つのWeChat赤い封筒をつかむアルゴリズムを実装し、感謝せずにそれを受け取ります

Javaは4つのWeChat赤い封筒をつかむアルゴリズムを実装し、感謝せずにそれを受け取ります

概要

2014年にWeChatが紅包機能を開始した後、多くの企業が独自の紅包機能の開発を開始しました。現在まで、紅包開発の需要は依然として多く、紅包獲得アルゴリズムの実装も面接でよく聞かれる質問です。

[[435386]]

必要とする:

  1. 赤い封筒1枚につき少なくとも0.01元がもらえることが保証されています
  2. 各赤い封筒の金額の確率が可能な限り均等になるようにします
  3. すべての赤い封筒の合計額は、赤い封筒の合計額に等しい。

この記事では、参考目的で 4 つの赤い封筒アルゴリズムと Java コード実装デモを提供します。各アルゴリズムのテストシナリオは、0.1 元のパッケージ 10 個、1 元のパッケージ 10 個、100 元のパッケージ 10 個、1,000 元のパッケージ 10 個です。

1. ランダム残余量法

10 元の赤い封筒 10 個を例にとると、各赤い封筒から最小金額を取り除いた後、赤い封筒には 9.9 元が残ります。

  1. 最初の赤い封筒は[0,9.9]の範囲でランダムに選択されます。1元がランダムに取得されると仮定すると、最初の赤い封筒の金額は1.1元で、赤い封筒の残りの金額は8.9元です。
  2. 2つ目の赤い封筒は[0,8.9]の範囲でランダムに選択されます。ランダム結果が1.5元であると仮定すると、2つ目の赤い封筒の金額は1.6元で、赤い封筒の残りの金額は7.4元です。
  3. 3番目の赤い封筒は[0,7.4]の範囲でランダムに選択されます。ランダム結果が0.5元であると仮定すると、3番目の赤い封筒の金額は0.6元、赤い封筒の残りの金額は6.9元です。
  4. 等々。
  1. 公共 静的void main(String[] args) {
  2. // テストシーンを初期化する
  3. ビッグデシマル[][] rrr = {
  4. {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
  5. {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
  6. {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
  7. {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
  8. };
  9. BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
  10. //シーンをテストする
  11. (BigDecimal[] 小数点: rrr)の場合{
  12. 最終的なBigDecimal量 = 小数点[0];
  13. 最終的なBigDecimal num = 小数点[1];
  14. System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
  15. test1(量、最小値、数値);
  16. }
  17. }
  18.  
  19. プライベート静的void test1(BigDecimal量、BigDecimal最小値、BigDecimal数値) {
  20. BigDecimal 残り = amount.subtract( min.multiply (num));
  21. 最終的なランダム random = new Random();
  22. 最終的な BigDecimal 百 = 新しい BigDecimal( "100" );
  23. BigDecimal の合計= BigDecimal.ZERO;
  24. BigDecimal レッドペック;
  25. ( int i = 0; i < num.intValue(); i++) {
  26. 最終的な int nextInt = random.nextInt(100);
  27. i == num.intValue() - 1 の場合
  28. redpeck = 残る;
  29. }それ以外{
  30. redpeck = new BigDecimal(nextInt).multiply(remain).divide(hundred, 2, RoundingMode.FLOOR);
  31. }
  32. (remain.compareTo(redpeck) > 0)の場合{
  33. 残り = remain.subtract(redpeck);
  34. }それ以外{
  35. 残り = BigDecimal.ZERO;
  36. }
  37. sum = sum.add ( min.add ( redpeck ) ) ;
  38. システム.out.println ( "the" +(i+1)+ "個人が掴んだ赤い封筒の量は:" + min.add ( redpeck ));
  39. }
  40. System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" + (amount.compareTo( sum ) == 0));
  41. }

テスト結果は次のとおりです。このアルゴリズムには明らかな欠陥があることがわかります。つまり、最初に受け取った紅包の量が多く、後で受け取った紅包の量が少なくなるため、紅包の獲得が不公平になります。

  1. 10人で0.1元ゲット ==================================================================
  2. 赤い封筒の金額を最初に掴んだ人の額は: 0.01
  3. 2人目が掴んだ赤い封筒の金額は0.01です。
  4. 3人目が掴んだ赤い封筒の金額は0.01
  5. 4人目が掴んだ赤い封筒の金額は0.01
  6. 5人目が掴んだ赤い封筒の金額は0.01
  7. 6人目が掴んだ赤い封筒の金額は0.01
  8. 7人目が掴んだ赤い封筒の金額は0.01
  9. 8人目が掴んだ赤い封筒の金額は0.01
  10. 9人目の人は、価値0.01の赤い封筒を受け取ります。
  11. 10人目が掴んだ赤い封筒の金額は0.01
  12. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  13. 10人で1元ゲット ==================================================================
  14. 赤い封筒の金額を最初に掴んだ人の額は: 0.09
  15. 2人目が掴んだ赤い封筒の金額は0.28です。
  16. 3人目が掴んだ赤い封筒の金額は0.19
  17. 4人目が掴んだ赤い封筒の金額は0.20
  18. 5人目が掴んだ赤い封筒の金額は0.15です。
  19. 6人目が掴んだ赤い封筒の金額は0.02
  20. 7人目が掴んだ赤い封筒の金額は0.03
  21. 8人目が掴んだ赤い封筒の金額は0.01
  22. 9人目の人は、価値0.01の赤い封筒を受け取ります。
  23. 10人目が掴んだ赤い封筒の金額は0.02
  24. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  25. 10人で100元ゲット ================================================================
  26. 赤い封筒を最初に手に入れた人の金額は: 19.99
  27. 2人目が掴んだ赤い封筒の金額は29.58です。
  28. 3人目が掴んだ赤い封筒の金額は38.27です。
  29. 4人目が掴んだ赤い封筒の金額は11.85です。
  30. 5人目が掴んだ赤い封筒の金額は0.11です。
  31. 6人目が掴んだ赤い封筒の金額は0.13
  32. 7人目が掴んだ赤い封筒の金額は0.01
  33. 8人目が掴んだ赤い封筒の金額は0.01
  34. 9人目が掴んだ赤い封筒の金額は0.03
  35. 10人目が掴んだ赤い封筒の金額は0.02
  36. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  37. 10人が1000元を奪い合う ==============================================================
  38. 赤い封筒を最初に手に入れた人の金額は: 60.00
  39. 2人目が掴んだ赤い封筒の金額は695.54です。
  40. 3人目が掴んだ赤い封筒の金額は229.72です。
  41. 4人目が掴んだ赤い封筒の金額は: 8.95
  42. 5人目が掴んだ赤い封筒の金額は0.29
  43. 6人目が掴んだ赤い封筒の金額は4.64です。
  44. 7人目が掴んだ赤い封筒の金額は0.01
  45. 8人目が掴んだ赤い封筒の金額は0.69
  46. 9人目が掴んだ赤い封筒の金額は0.12です。
  47. 10人目の人は0.04ドル相当の赤い封筒を受け取ります。
  48. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  

2. 二重平均法(WeChatの赤い封筒はこの方法を採用しています)

10元の赤い封筒10枚を例に挙げてみましょう。各赤い封筒の最小金額を除いた後、赤い封筒には9.9元が残っています。二重平均の計算式は、2 *残額/残りの赤い封筒の数です。

  1. 最初の赤い封筒は[0,1.98]の範囲でランダムに選択されます。乱数が1.9であると仮定すると、最初の赤い封筒の金額は2.0で、赤い封筒の残りの金額は8元です。
  2. 2つ目の赤い封筒は[0,2]の範囲でランダムに選ばれます。ランダムな金額が1元だとすると、2つ目の赤い封筒の金額は1.1元、赤い封筒の残りの金額は7元です。
  3. 3番目の赤い封筒は[0,2]の範囲でランダムに選択されます。ランダムな金額が0.5元であると仮定すると、3番目の赤い封筒の金額は0.6元で、赤い封筒の残りの金額は5.5元です。
  4. 等々。
  1. 公共 静的void main(String[] args) {
  2. // テストシーンを初期化する
  3. ビッグデシマル[][] rrr = {
  4. {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
  5. {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
  6. {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
  7. {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
  8. };
  9. BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
  10. //シーンをテストする
  11. (BigDecimal[] 小数点: rrr)の場合{
  12. 最終的なBigDecimal量 = 小数点[0];
  13. 最終的なBigDecimal num = 小数点[1];
  14. System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
  15. test2(量、最小値、数値);
  16. }
  17. }
  18.  
  19.  
  20. プライベート静的void test2(BigDecimal量、BigDecimal最小値、BigDecimal数値){
  21. BigDecimal 残り = amount.subtract( min.multiply (num));
  22. 最終的なランダム random = new Random();
  23. 最終的な BigDecimal 百 = 新しい BigDecimal( "100" );
  24. 最終的な BigDecimal 2 = 新しい BigDecimal( "2" );
  25. BigDecimal の合計= BigDecimal.ZERO;
  26. BigDecimal レッドペック;
  27. ( int i = 0; i < num.intValue(); i++) {
  28. 最終的な int nextInt = random.nextInt(100);
  29. if(i == num.intValue() -1){
  30. redpeck = 残る;
  31. }それ以外{
  32. redpeck = new BigDecimal(nextInt).multiply(remain.multiply(two).divide(num.subtract(new BigDecimal(i)),2,RoundingMode.CEILING)).divide(hundred,2,RoundingMode.FLOOR);
  33. }
  34. (remain.compareTo(redpeck) > 0)の場合{
  35. 残り = remain.subtract(redpeck);
  36. }それ以外{
  37. 残り = BigDecimal.ZERO;
  38. }
  39. sum = sum.add ( min.add ( redpeck ) ) ;
  40. System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量:" + min.add ( redpeck));
  41. }
  42. System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +amount.compareTo( sum ));
  43. }

テスト結果は次のとおりです。このアルゴリズムにより、赤い封筒をつかむ可能性がほぼ均等になります。

  1. 10人で0.1元ゲット ==================================================================
  2. 赤い封筒の金額を最初に掴んだ人の額は: 0.01
  3. 2人目が掴んだ赤い封筒の金額は0.01です。
  4. 3人目が掴んだ赤い封筒の金額は0.01
  5. 4人目が掴んだ赤い封筒の金額は0.01
  6. 5人目が掴んだ赤い封筒の金額は0.01
  7. 6人目が掴んだ赤い封筒の金額は0.01
  8. 7人目が掴んだ赤い封筒の金額は0.01
  9. 8人目が掴んだ赤い封筒の金額は0.01
  10. 9人目の人は、価値0.01の赤い封筒を受け取ります。
  11. 10人目が掴んだ赤い封筒の金額は0.01
  12. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  13. 10人で100元ゲット ================================================================
  14. 赤い封筒の金額を最初に掴んだ人の額は: 6.20
  15. 2人目が掴んだ赤い封筒の金額は7.09です。
  16. 3人目が受け取った赤い封筒の金額: 10.62
  17. 4人目が掴んだ赤い封筒の金額は18.68です。
  18. 5人目が掴んだ赤い封筒の金額は18.74です。
  19. 6人目が掴んだ赤い封筒の金額は2.32です。
  20. 7人目が掴んだ赤い封筒の金額は15.44です。
  21. 8人目は5.43の価値がある赤い封筒を受け取った。
  22. 9人目は15.16の価値がある赤い封筒を受け取った。
  23. 10人目が掴んだ赤い封筒の金額は0.32です。
  24. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  25. 10人で1元ゲット ==================================================================
  26. 赤い封筒の金額を最初に掴んだ人の額は: 0.08
  27. 2人目が掴んだ赤い封筒の金額は0.05です。
  28. 3人目が掴んだ赤い封筒の金額は0.17です。
  29. 4人目が掴んだ赤い封筒の金額は0.17
  30. 5人目が掴んだ赤い封筒の金額は0.08
  31. 6人目が掴んだ赤い封筒の金額は0.06
  32. 7人目が掴んだ赤い封筒の金額は0.18です。
  33. 8人目は0.10ドル相当の赤い封筒を受け取ります。
  34. 9人目は、価値0.02の赤い封筒を受け取りました。
  35. 10人目が掴んだ赤い封筒の金額は0.09
  36. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  37. 10人が1000元を奪い合う ==============================================================
  38. 赤い封筒を最初に手に入れた人の金額は: 125.99
  39. 2人目が掴んだ赤い封筒の金額は165.08です。
  40. 3人目が受け取った赤い封筒の金額: 31.90
  41. 4人目が掴んだ赤い封筒の金額は94.78です。
  42. 5人目が掴んだ赤い封筒の金額は137.79
  43. 6人目が掴んだ赤い封筒の金額は88.89です。
  44. 7人目が掴んだ赤い封筒の金額は156.44です
  45. 8人目は7.97の価値がある赤い封筒を受け取った。
  46. 9人目は151.01の価値がある赤い封筒を受け取った。
  47. 10人目の人は40.15ドル相当の赤い封筒を受け取ります。
  48. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  

3. 全体ランダム法

10元の紅包10枚を例に挙げてみましょう。10個のランダムな数字が選択されます。紅包の金額の計算式は、紅包の合計金額*ランダムな数字/合計ランダムな数字です。10個のランダムな数字が[5、9、8、7、6、5、4、3、2、1]であると仮定すると、10個のランダムな数字の合計は50になります。

  1. 最初の赤い封筒は10*5/50で、1元もらえます。
  2. 2つ目の赤い封筒は10*9/50で、1.8元です。
  3. 3番目の赤い封筒は10*8/50で、1.6元です。
  4. 等々。
  1. 公共 静的void main(String[] args) {
  2. // テストシーンを初期化する
  3. ビッグデシマル[][] rrr = {
  4. {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
  5. {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
  6. {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
  7. {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
  8. };
  9. BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
  10. //シーンをテストする
  11. (BigDecimal[] 小数点: rrr)の場合{
  12. 最終的なBigDecimal量 = 小数点[0];
  13. 最終的なBigDecimal num = 小数点[1];
  14. System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
  15. test3(量、最小値、数値);
  16. }
  17. }
  18.  
  19. プライベート静的void test3(BigDecimal量、BigDecimal最小値、BigDecimal数値){
  20. 最終的なランダム random = new Random();
  21. 最終的なint [] rand = 新しいint [num.intValue()];
  22. BigDecimal の合計1 = BigDecimal.ZERO;
  23. BigDecimal レッドペック ;
  24. 整数 合計= 0;
  25. ( int i = 0; i < num.intValue(); i++) {
  26. rand[i] = random.nextInt(100);
  27. 合計+= rand[i];
  28. }
  29. 最終的なBigDecimal bigDecimal = 新しいBigDecimal( sum );
  30. BigDecimal 残り = amount.subtract( min.multiply (num));
  31. ( int i = 0; i < rand.length; i++) {
  32. if(i == num.intValue() -1){
  33. redpeck = 残る;
  34. }それ以外{
  35. redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR);
  36. }
  37. (remain.compareTo(redpeck) > 0)の場合{
  38. 残り = remain.subtract(redpeck);
  39. }それ以外{
  40. 残り = BigDecimal.ZERO;
  41. }
  42. sum1 = sum1.add ( min.add (redpeck) ) ;
  43. System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量:" + min.add ( redpeck));
  44. }
  45.  
  46. System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +(amount.compareTo(sum1)==0));
  47. }

テスト結果は次のとおりです: このアルゴリズムは高いランダム性を持っています。

  1. 10人で0.1元ゲット ==================================================================
  2. 赤い封筒の金額を最初に掴んだ人の額は: 0.01
  3. 2人目が掴んだ赤い封筒の金額は0.01です。
  4. 3人目が掴んだ赤い封筒の金額は0.01
  5. 4人目が掴んだ赤い封筒の金額は0.01
  6. 5人目が掴んだ赤い封筒の金額は0.01
  7. 6人目が掴んだ赤い封筒の金額は0.01
  8. 7人目が掴んだ赤い封筒の金額は0.01
  9. 8人目が掴んだ赤い封筒の金額は0.01
  10. 9人目の人は、価値0.01の赤い封筒を受け取ります。
  11. 10人目が掴んだ赤い封筒の金額は0.01
  12. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  13. 10人で100元ゲット ================================================================
  14. 赤い封筒の金額を最初に掴んだ人の額は: 2.35
  15. 2人目が掴んだ赤い封筒の金額は14.12です。
  16. 3人目が掴んだ赤い封筒の金額は5.74です。
  17. 4人目が掴んだ赤い封筒の金額は6.61です。
  18. 5人目が掴んだ赤い封筒の金額は0.65です。
  19. 6人目が掴んだ赤い封筒の金額は10.97です。
  20. 7人目が掴んだ赤い封筒の金額は9.15です。
  21. 8人目は7.93の価値がある赤い封筒を受け取った。
  22. 9人目は1.31の価値がある赤い封筒を受け取った。
  23. 10人目は41.17の価値がある赤い封筒を受け取った。
  24. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  25. 10人で1元ゲット ==================================================================
  26. 赤い封筒の金額を最初に掴んだ人の額は: 0.10
  27. 2人目が掴んだ赤い封筒の金額は0.02です。
  28. 3人目が掴んだ赤い封筒の金額は0.12です。
  29. 4人目が掴んだ赤い封筒の金額は0.03
  30. 5人目が掴んだ赤い封筒の金額は0.05です。
  31. 6人目が掴んだ赤い封筒の金額は0.12です。
  32. 7人目が掴んだ赤い封筒の金額は0.06
  33. 8人目が掴んだ赤い封筒の金額は0.01
  34. 9人目は、価値0.04の赤い封筒を受け取りました。
  35. 10人目の人は0.45ドル相当の赤い封筒を受け取ります。
  36. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  37. 10人が1000元を奪い合う ==============================================================
  38. 赤い封筒の金額を最初に獲得した人の金額は: 148.96
  39. 2人目が掴んだ赤い封筒の金額は116.57です。
  40. 3人目が受け取った赤い封筒の金額: 80.49
  41. 4人目が掴んだ赤い封筒の金額は32.48です。
  42. 5人目が掴んだ赤い封筒の金額は89.39です。
  43. 6人目が掴んだ赤い封筒の金額は65.60です。
  44. 7人目が掴んだ赤い封筒の金額は20.77です。
  45. 8人目は16.03の価値がある赤い封筒を受け取った。
  46. 9人目は36.79の価値がある赤い封筒を受け取った。
  47. 10人目は392.92ドル相当の赤い封筒を受け取った。
  48. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  

4. セカント法

10元の赤い封筒10枚を例にとりましょう。範囲(0,10)内で間隔が0.01以上の9つの数字をランダムに選びます。その数字は[1,1.2,2,3,4,5,6,7,8]です。

  1. 最初の赤い封筒は1元
  2. 2つ目の赤い封筒は0.2元
  3. 3番目の赤いものは0.8元になります。
  4. 等々。
  1. 公共 静的void main(String[] args) {
  2. // テストシーンを初期化する
  3. ビッグデシマル[][] rrr = {
  4. {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
  5. {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
  6. {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
  7. {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
  8. };
  9. BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
  10. //シーンをテストする
  11. (BigDecimal[] 小数点: rrr)の場合{
  12. 最終的なBigDecimal量 = 小数点[0];
  13. 最終的なBigDecimal num = 小数点[1];
  14. System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
  15. test3(量、最小値、数値);
  16. }
  17. }
  18.  
  19. プライベート静的void test3(BigDecimal量、BigDecimal最小値、BigDecimal数値){
  20. 最終的なランダム random = new Random();
  21. 最終的なint [] rand = 新しいint [num.intValue()];
  22. BigDecimal の合計1 = BigDecimal.ZERO;
  23. BigDecimal レッドペック ;
  24. 整数 合計= 0;
  25. ( int i = 0; i < num.intValue(); i++) {
  26. rand[i] = random.nextInt(100);
  27. 合計+= rand[i];
  28. }
  29. 最終的なBigDecimal bigDecimal = 新しいBigDecimal( sum );
  30. BigDecimal 残り = amount.subtract( min.multiply (num));
  31. ( int i = 0; i < rand.length; i++) {
  32. if(i == num.intValue() -1){
  33. redpeck = 残る;
  34. }それ以外{
  35. redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR);
  36. }
  37. (remain.compareTo(redpeck) > 0)の場合{
  38. 残り = remain.subtract(redpeck);
  39. }それ以外{
  40. 残り = BigDecimal.ZERO;
  41. }
  42. sum1 = sum1.add ( min.add (redpeck) ) ;
  43. System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量:" + min.add ( redpeck));
  44. }
  45.  
  46. System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +(amount.compareTo(sum1)==0));
  47. }

テスト結果は次のとおりです: このアルゴリズムはランダム性が高く、パフォーマンスが低いです。

  1. 10人で0.1元ゲット ==================================================================
  2. 赤い封筒の金額を最初に掴んだ人の額は: 0.01
  3. 2人目が掴んだ赤い封筒の金額は0.01です。
  4. 3人目が掴んだ赤い封筒の金額は0.01
  5. 4人目が掴んだ赤い封筒の金額は0.01
  6. 5人目が掴んだ赤い封筒の金額は0.01
  7. 6人目が掴んだ赤い封筒の金額は0.01
  8. 7人目が掴んだ赤い封筒の金額は0.01
  9. 8人目が掴んだ赤い封筒の金額は0.01
  10. 9人目の人は、価値0.01の赤い封筒を受け取ります。
  11. 10人目が掴んだ赤い封筒の金額は0.01
  12. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  13. 10人で100元ゲット ================================================================
  14. 赤い封筒の金額を最初に獲得した人の額は: 19.84
  15. 2人目が掴んだ赤い封筒の金額は2.73です。
  16. 3人目は8.95の価値がある赤い封筒を受け取った。
  17. 4人目が掴んだ赤い封筒の金額は14.10です。
  18. 5人目が掴んだ赤い封筒の金額は18.60ドルです。
  19. 6人目が掴んだ赤い封筒の金額は3.66です。
  20. 7人目が掴んだ赤い封筒の金額は9.17です。
  21. 8人目は15.49ドルの赤い封筒を受け取った。
  22. 9人目は5.61の価値がある赤い封筒を受け取った。
  23. 10人目の人は1.85ドル相当の赤い封筒を受け取ります。
  24. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  25. 10人で1元ゲット ==================================================================
  26. 赤い封筒の金額を最初に掴んだ人の額は: 0.02
  27. 2人目が掴んだ赤い封筒の金額は0.28です。
  28. 3人目が掴んだ赤い封筒の金額は0.03
  29. 4人目が掴んだ赤い封筒の金額は0.02
  30. 5人目が掴んだ赤い封筒の金額は0.11です。
  31. 6人目が掴んだ赤い封筒の金額は0.23です。
  32. 7人目が掴んだ赤い封筒の金額は0.18です。
  33. 8人目が掴んだ赤い封筒の金額は0.09
  34. 9人目は、価値0.03の赤い封筒を受け取りました。
  35. 10人目が掴んだ赤い封筒の金額は0.01
  36. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  
  37. 10人が1000元を奪い合う ==============================================================
  38. 赤い封筒の金額を最初に獲得した人の額は: 69.28
  39. 2人目が掴んだ赤い封筒の金額は14.68です。
  40. 3人目が掴んだ赤い封筒の金額は373.16です。
  41. 4人目が掴んだ赤い封筒の金額は274.73
  42. 5人目が掴んだ赤い封筒の金額は30.77です。
  43. 6人目が掴んだ赤い封筒の金額は30.76です。
  44. 7人目は95.55の価値がある赤い封筒を受け取った。
  45. 8人目は85.20ドル相当の赤い封筒を受け取った。
  46. 9人目は10.44の価値がある赤い封筒を受け取った。
  47. 10人目の人は15.43ドル相当の赤い封筒を受け取ります。
  48. 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true  

<<:  人工知能があなたの好きな家を見つけるお手伝いをします

>>:  AI学習製品は本当に子供の成長に良いのでしょうか?

ブログ    
ブログ    
ブログ    
ブログ    
ブログ    

推薦する

国家戦略科学者としてトップのAI研究者である朱松春氏は中国に戻り、北京総合AI研究所を設立した。

知乎のホットな投稿によると、中国のトップAI研究者でUCLA教授の朱松春氏が清華大学オートメーション...

...

...

RLHF にはもう人間は必要ありません! Googleチームの研究により、AIによる注釈が人間のレベルに達したことが証明される

たとえば、RLHF の「人間」が入れ替わった場合、それは実現可能でしょうか? Google チームの...

未来の超人工知能はどれほど恐ろしいものになるのでしょうか?この記事を読んだら黙ってしまうかもしれません!

[[222688]]未来学者のケビン・ケリーはかつてこう言った。「人工知能は今後20年間で人類社会を...

人工知能を始めるときに尋ねるべき10の質問

人工知能 (AI) と機械学習 (ML) のテクノロジーは、世界中のほぼすべての業界に革命をもたらし...

分散ストレージシステムのデータ分散アルゴリズムを簡単に見てみましょう。

序文分散ストレージ システムが直面する主な問題は、大量のデータを異なるストレージ ノードに分散する方...

今後10年間で、人工知能とロボットは雇用に7つの影響を与える

あなたは理想の仕事をしていないかもしれません。おそらく、あなたが望むほどの収入は得られていないでしょ...

...

メディア分野における人工知能の革新は期待に値する

過去 30 年間にわたり、この種のイノベーションの歴史に残る例は数多くありました。ウェブサイト上のメ...

人工知能エンジニアリングについて知らないかもしれない7つのこと

[[387622]]ビジネスの世界が人々の想像よりも速く変化することは周知の事実です。この問題に対処...

...

中国の人工知能は世界の潮流をリードできるか?

[[389342]] 10年以上前であれば、おそらく多くの人が、将来中国が日本や米国と同じくらい発...

7つの便利なプロンプトパラメータ

ChatGPT と Midjournal により、生成 AI のアプリケーションが急増しました。生成...

産業用AIoTが「新たな人気」となった4つの主な要因

最近発表された産業用人工知能および人工知能市場レポート 2021-2026 のデータによると、わずか...