概要2014年にWeChatが紅包機能を開始した後、多くの企業が独自の紅包機能の開発を開始しました。現在まで、紅包開発の需要は依然として多く、紅包獲得アルゴリズムの実装も面接でよく聞かれる質問です。 [[435386]] 必要とする: - 赤い封筒1枚につき少なくとも0.01元がもらえることが保証されています
- 各赤い封筒の金額の確率が可能な限り均等になるようにします
- すべての赤い封筒の合計額は、赤い封筒の合計額に等しい。
この記事では、参考目的で 4 つの赤い封筒アルゴリズムと Java コード実装デモを提供します。各アルゴリズムのテストシナリオは、0.1 元のパッケージ 10 個、1 元のパッケージ 10 個、100 元のパッケージ 10 個、1,000 元のパッケージ 10 個です。 1. ランダム残余量法10 元の赤い封筒 10 個を例にとると、各赤い封筒から最小金額を取り除いた後、赤い封筒には 9.9 元が残ります。 - 最初の赤い封筒は[0,9.9]の範囲でランダムに選択されます。1元がランダムに取得されると仮定すると、最初の赤い封筒の金額は1.1元で、赤い封筒の残りの金額は8.9元です。
- 2つ目の赤い封筒は[0,8.9]の範囲でランダムに選択されます。ランダム結果が1.5元であると仮定すると、2つ目の赤い封筒の金額は1.6元で、赤い封筒の残りの金額は7.4元です。
- 3番目の赤い封筒は[0,7.4]の範囲でランダムに選択されます。ランダム結果が0.5元であると仮定すると、3番目の赤い封筒の金額は0.6元、赤い封筒の残りの金額は6.9元です。
- 等々。
- 公共 静的void main(String[] args) {
- // テストシーンを初期化する
- ビッグデシマル[][] rrr = {
- {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
- };
- BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
- //シーンをテストする
- (BigDecimal[] 小数点: rrr)の場合{
- 最終的なBigDecimal量 = 小数点[0];
- 最終的なBigDecimal num = 小数点[1];
- System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
- test1(量、最小値、数値);
- }
- }
-
- プライベート静的void test1(BigDecimal量、BigDecimal最小値、BigDecimal数値) {
- BigDecimal 残り = amount.subtract( min.multiply (num));
- 最終的なランダム random = new Random();
- 最終的な BigDecimal 百 = 新しい BigDecimal( "100" );
- BigDecimal の合計= BigDecimal.ZERO;
- BigDecimal レッドペック;
- ( int i = 0; i < num.intValue(); i++) {
- 最終的な int nextInt = random.nextInt(100);
- i == num.intValue() - 1 の場合
- redpeck = 残る;
- }それ以外{
- redpeck = new BigDecimal(nextInt).multiply(remain).divide(hundred, 2, RoundingMode.FLOOR);
- }
- (remain.compareTo(redpeck) > 0)の場合{
- 残り = remain.subtract(redpeck);
- }それ以外{
- 残り = BigDecimal.ZERO;
- }
- sum = sum.add ( min.add ( redpeck ) ) ;
- システム.out.println ( "the" +(i+1)+ "個人が掴んだ赤い封筒の量は:" + min.add ( redpeck ));
- }
- System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" + (amount.compareTo( sum ) == 0));
- }
テスト結果は次のとおりです。このアルゴリズムには明らかな欠陥があることがわかります。つまり、最初に受け取った紅包の量が多く、後で受け取った紅包の量が少なくなるため、紅包の獲得が不公平になります。 - 10人で0.1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.01
- 2人目が掴んだ赤い封筒の金額は0.01です。
- 3人目が掴んだ赤い封筒の金額は0.01
- 4人目が掴んだ赤い封筒の金額は0.01
- 5人目が掴んだ赤い封筒の金額は0.01
- 6人目が掴んだ赤い封筒の金額は0.01
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目の人は、価値0.01の赤い封筒を受け取ります。
- 10人目が掴んだ赤い封筒の金額は0.01
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.09
- 2人目が掴んだ赤い封筒の金額は0.28です。
- 3人目が掴んだ赤い封筒の金額は0.19
- 4人目が掴んだ赤い封筒の金額は0.20
- 5人目が掴んだ赤い封筒の金額は0.15です。
- 6人目が掴んだ赤い封筒の金額は0.02
- 7人目が掴んだ赤い封筒の金額は0.03
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目の人は、価値0.01の赤い封筒を受け取ります。
- 10人目が掴んだ赤い封筒の金額は0.02
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で100元ゲット ================================================================
- 赤い封筒を最初に手に入れた人の金額は: 19.99
- 2人目が掴んだ赤い封筒の金額は29.58です。
- 3人目が掴んだ赤い封筒の金額は38.27です。
- 4人目が掴んだ赤い封筒の金額は11.85です。
- 5人目が掴んだ赤い封筒の金額は0.11です。
- 6人目が掴んだ赤い封筒の金額は0.13
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目が掴んだ赤い封筒の金額は0.03
- 10人目が掴んだ赤い封筒の金額は0.02
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人が1000元を奪い合う ==============================================================
- 赤い封筒を最初に手に入れた人の金額は: 60.00
- 2人目が掴んだ赤い封筒の金額は695.54です。
- 3人目が掴んだ赤い封筒の金額は229.72です。
- 4人目が掴んだ赤い封筒の金額は: 8.95
- 5人目が掴んだ赤い封筒の金額は0.29
- 6人目が掴んだ赤い封筒の金額は4.64です。
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.69
- 9人目が掴んだ赤い封筒の金額は0.12です。
- 10人目の人は0.04ドル相当の赤い封筒を受け取ります。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
2. 二重平均法(WeChatの赤い封筒はこの方法を採用しています) 10元の赤い封筒10枚を例に挙げてみましょう。各赤い封筒の最小金額を除いた後、赤い封筒には9.9元が残っています。二重平均の計算式は、2 *残額/残りの赤い封筒の数です。 - 最初の赤い封筒は[0,1.98]の範囲でランダムに選択されます。乱数が1.9であると仮定すると、最初の赤い封筒の金額は2.0で、赤い封筒の残りの金額は8元です。
- 2つ目の赤い封筒は[0,2]の範囲でランダムに選ばれます。ランダムな金額が1元だとすると、2つ目の赤い封筒の金額は1.1元、赤い封筒の残りの金額は7元です。
- 3番目の赤い封筒は[0,2]の範囲でランダムに選択されます。ランダムな金額が0.5元であると仮定すると、3番目の赤い封筒の金額は0.6元で、赤い封筒の残りの金額は5.5元です。
- 等々。
- 公共 静的void main(String[] args) {
- // テストシーンを初期化する
- ビッグデシマル[][] rrr = {
- {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
- };
- BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
- //シーンをテストする
- (BigDecimal[] 小数点: rrr)の場合{
- 最終的なBigDecimal量 = 小数点[0];
- 最終的なBigDecimal num = 小数点[1];
- System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
- test2(量、最小値、数値);
- }
- }
-
-
- プライベート静的void test2(BigDecimal量、BigDecimal最小値、BigDecimal数値){
- BigDecimal 残り = amount.subtract( min.multiply (num));
- 最終的なランダム random = new Random();
- 最終的な BigDecimal 百 = 新しい BigDecimal( "100" );
- 最終的な BigDecimal 2 = 新しい BigDecimal( "2" );
- BigDecimal の合計= BigDecimal.ZERO;
- BigDecimal レッドペック;
- ( int i = 0; i < num.intValue(); i++) {
- 最終的な int nextInt = random.nextInt(100);
- if(i == num.intValue() -1){
- redpeck = 残る;
- }それ以外{
- redpeck = new BigDecimal(nextInt).multiply(remain.multiply(two).divide(num.subtract(new BigDecimal(i)),2,RoundingMode.CEILING)).divide(hundred,2,RoundingMode.FLOOR);
- }
- (remain.compareTo(redpeck) > 0)の場合{
- 残り = remain.subtract(redpeck);
- }それ以外{
- 残り = BigDecimal.ZERO;
- }
- sum = sum.add ( min.add ( redpeck ) ) ;
- System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量は:" + min.add ( redpeck));
- }
- System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +amount.compareTo( sum ));
- }
テスト結果は次のとおりです。このアルゴリズムにより、赤い封筒をつかむ可能性がほぼ均等になります。 - 10人で0.1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.01
- 2人目が掴んだ赤い封筒の金額は0.01です。
- 3人目が掴んだ赤い封筒の金額は0.01
- 4人目が掴んだ赤い封筒の金額は0.01
- 5人目が掴んだ赤い封筒の金額は0.01
- 6人目が掴んだ赤い封筒の金額は0.01
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目の人は、価値0.01の赤い封筒を受け取ります。
- 10人目が掴んだ赤い封筒の金額は0.01
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で100元ゲット ================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 6.20
- 2人目が掴んだ赤い封筒の金額は7.09です。
- 3人目が受け取った赤い封筒の金額: 10.62
- 4人目が掴んだ赤い封筒の金額は18.68です。
- 5人目が掴んだ赤い封筒の金額は18.74です。
- 6人目が掴んだ赤い封筒の金額は2.32です。
- 7人目が掴んだ赤い封筒の金額は15.44です。
- 8人目は5.43の価値がある赤い封筒を受け取った。
- 9人目は15.16の価値がある赤い封筒を受け取った。
- 10人目が掴んだ赤い封筒の金額は0.32です。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.08
- 2人目が掴んだ赤い封筒の金額は0.05です。
- 3人目が掴んだ赤い封筒の金額は0.17です。
- 4人目が掴んだ赤い封筒の金額は0.17
- 5人目が掴んだ赤い封筒の金額は0.08
- 6人目が掴んだ赤い封筒の金額は0.06
- 7人目が掴んだ赤い封筒の金額は0.18です。
- 8人目は0.10ドル相当の赤い封筒を受け取ります。
- 9人目は、価値0.02の赤い封筒を受け取りました。
- 10人目が掴んだ赤い封筒の金額は0.09
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人が1000元を奪い合う ==============================================================
- 赤い封筒を最初に手に入れた人の金額は: 125.99
- 2人目が掴んだ赤い封筒の金額は165.08です。
- 3人目が受け取った赤い封筒の金額: 31.90
- 4人目が掴んだ赤い封筒の金額は94.78です。
- 5人目が掴んだ赤い封筒の金額は137.79
- 6人目が掴んだ赤い封筒の金額は88.89です。
- 7人目が掴んだ赤い封筒の金額は156.44です
- 8人目は7.97の価値がある赤い封筒を受け取った。
- 9人目は151.01の価値がある赤い封筒を受け取った。
- 10人目の人は40.15ドル相当の赤い封筒を受け取ります。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
3. 全体ランダム法10元の紅包10枚を例に挙げてみましょう。10個のランダムな数字が選択されます。紅包の金額の計算式は、紅包の合計金額*ランダムな数字/合計ランダムな数字です。10個のランダムな数字が[5、9、8、7、6、5、4、3、2、1]であると仮定すると、10個のランダムな数字の合計は50になります。 - 最初の赤い封筒は10*5/50で、1元もらえます。
- 2つ目の赤い封筒は10*9/50で、1.8元です。
- 3番目の赤い封筒は10*8/50で、1.6元です。
- 等々。
- 公共 静的void main(String[] args) {
- // テストシーンを初期化する
- ビッグデシマル[][] rrr = {
- {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
- };
- BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
- //シーンをテストする
- (BigDecimal[] 小数点: rrr)の場合{
- 最終的なBigDecimal量 = 小数点[0];
- 最終的なBigDecimal num = 小数点[1];
- System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
- test3(量、最小値、数値);
- }
- }
-
- プライベート静的void test3(BigDecimal量、BigDecimal最小値、BigDecimal数値){
- 最終的なランダム random = new Random();
- 最終的なint [] rand = 新しいint [num.intValue()];
- BigDecimal の合計1 = BigDecimal.ZERO;
- BigDecimal レッドペック ;
- 整数 合計= 0;
- ( int i = 0; i < num.intValue(); i++) {
- rand[i] = random.nextInt(100);
- 合計+= rand[i];
- }
- 最終的なBigDecimal bigDecimal = 新しいBigDecimal( sum );
- BigDecimal 残り = amount.subtract( min.multiply (num));
- ( int i = 0; i < rand.length; i++) {
- if(i == num.intValue() -1){
- redpeck = 残る;
- }それ以外{
- redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR);
- }
- (remain.compareTo(redpeck) > 0)の場合{
- 残り = remain.subtract(redpeck);
- }それ以外{
- 残り = BigDecimal.ZERO;
- }
- sum1 = sum1.add ( min.add (redpeck) ) ;
- System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量は:" + min.add ( redpeck));
- }
-
- System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +(amount.compareTo(sum1)==0));
- }
テスト結果は次のとおりです: このアルゴリズムは高いランダム性を持っています。 - 10人で0.1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.01
- 2人目が掴んだ赤い封筒の金額は0.01です。
- 3人目が掴んだ赤い封筒の金額は0.01
- 4人目が掴んだ赤い封筒の金額は0.01
- 5人目が掴んだ赤い封筒の金額は0.01
- 6人目が掴んだ赤い封筒の金額は0.01
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目の人は、価値0.01の赤い封筒を受け取ります。
- 10人目が掴んだ赤い封筒の金額は0.01
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で100元ゲット ================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 2.35
- 2人目が掴んだ赤い封筒の金額は14.12です。
- 3人目が掴んだ赤い封筒の金額は5.74です。
- 4人目が掴んだ赤い封筒の金額は6.61です。
- 5人目が掴んだ赤い封筒の金額は0.65です。
- 6人目が掴んだ赤い封筒の金額は10.97です。
- 7人目が掴んだ赤い封筒の金額は9.15です。
- 8人目は7.93の価値がある赤い封筒を受け取った。
- 9人目は1.31の価値がある赤い封筒を受け取った。
- 10人目は41.17の価値がある赤い封筒を受け取った。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.10
- 2人目が掴んだ赤い封筒の金額は0.02です。
- 3人目が掴んだ赤い封筒の金額は0.12です。
- 4人目が掴んだ赤い封筒の金額は0.03
- 5人目が掴んだ赤い封筒の金額は0.05です。
- 6人目が掴んだ赤い封筒の金額は0.12です。
- 7人目が掴んだ赤い封筒の金額は0.06
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目は、価値0.04の赤い封筒を受け取りました。
- 10人目の人は0.45ドル相当の赤い封筒を受け取ります。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人が1000元を奪い合う ==============================================================
- 赤い封筒の金額を最初に獲得した人の金額は: 148.96
- 2人目が掴んだ赤い封筒の金額は116.57です。
- 3人目が受け取った赤い封筒の金額: 80.49
- 4人目が掴んだ赤い封筒の金額は32.48です。
- 5人目が掴んだ赤い封筒の金額は89.39です。
- 6人目が掴んだ赤い封筒の金額は65.60です。
- 7人目が掴んだ赤い封筒の金額は20.77です。
- 8人目は16.03の価値がある赤い封筒を受け取った。
- 9人目は36.79の価値がある赤い封筒を受け取った。
- 10人目は392.92ドル相当の赤い封筒を受け取った。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
4. セカント法10元の赤い封筒10枚を例にとりましょう。範囲(0,10)内で間隔が0.01以上の9つの数字をランダムに選びます。その数字は[1,1.2,2,3,4,5,6,7,8]です。 - 最初の赤い封筒は1元
- 2つ目の赤い封筒は0.2元
- 3番目の赤いものは0.8元になります。
- 等々。
- 公共 静的void main(String[] args) {
- // テストシーンを初期化する
- ビッグデシマル[][] rrr = {
- {新しいBigDecimal( "0.1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "100" )、新しいBigDecimal( "10" )}、
- {新しいBigDecimal( "1000" )、新しいBigDecimal( "10" )}
- };
- BigDecimal の最小値= 新しい BigDecimal ( "0.01" );
- //シーンをテストする
- (BigDecimal[] 小数点: rrr)の場合{
- 最終的なBigDecimal量 = 小数点[0];
- 最終的なBigDecimal num = 小数点[1];
- System.out .println (amount + "yuan" + num + "個人グラブ================================================================" );
- test3(量、最小値、数値);
- }
- }
-
- プライベート静的void test3(BigDecimal量、BigDecimal最小値、BigDecimal数値){
- 最終的なランダム random = new Random();
- 最終的なint [] rand = 新しいint [num.intValue()];
- BigDecimal の合計1 = BigDecimal.ZERO;
- BigDecimal レッドペック ;
- 整数 合計= 0;
- ( int i = 0; i < num.intValue(); i++) {
- rand[i] = random.nextInt(100);
- 合計+= rand[i];
- }
- 最終的なBigDecimal bigDecimal = 新しいBigDecimal( sum );
- BigDecimal 残り = amount.subtract( min.multiply (num));
- ( int i = 0; i < rand.length; i++) {
- if(i == num.intValue() -1){
- redpeck = 残る;
- }それ以外{
- redpeck = remain.multiply(new BigDecimal(rand[i])).divide(bigDecimal,2,RoundingMode.FLOOR);
- }
- (remain.compareTo(redpeck) > 0)の場合{
- 残り = remain.subtract(redpeck);
- }それ以外{
- 残り = BigDecimal.ZERO;
- }
- sum1 = sum1.add ( min.add (redpeck) ) ;
- System.out.println ( "" +(i+1)+ "の人が掴んだ赤い封筒の量は:" + min.add ( redpeck));
- }
-
- System.out.println ( "各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します:" +(amount.compareTo(sum1)==0));
- }
テスト結果は次のとおりです: このアルゴリズムはランダム性が高く、パフォーマンスが低いです。 - 10人で0.1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.01
- 2人目が掴んだ赤い封筒の金額は0.01です。
- 3人目が掴んだ赤い封筒の金額は0.01
- 4人目が掴んだ赤い封筒の金額は0.01
- 5人目が掴んだ赤い封筒の金額は0.01
- 6人目が掴んだ赤い封筒の金額は0.01
- 7人目が掴んだ赤い封筒の金額は0.01
- 8人目が掴んだ赤い封筒の金額は0.01
- 9人目の人は、価値0.01の赤い封筒を受け取ります。
- 10人目が掴んだ赤い封筒の金額は0.01
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で100元ゲット ================================================================
- 赤い封筒の金額を最初に獲得した人の額は: 19.84
- 2人目が掴んだ赤い封筒の金額は2.73です。
- 3人目は8.95の価値がある赤い封筒を受け取った。
- 4人目が掴んだ赤い封筒の金額は14.10です。
- 5人目が掴んだ赤い封筒の金額は18.60ドルです。
- 6人目が掴んだ赤い封筒の金額は3.66です。
- 7人目が掴んだ赤い封筒の金額は9.17です。
- 8人目は15.49ドルの赤い封筒を受け取った。
- 9人目は5.61の価値がある赤い封筒を受け取った。
- 10人目の人は1.85ドル相当の赤い封筒を受け取ります。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人で1元ゲット ==================================================================
- 赤い封筒の金額を最初に掴んだ人の額は: 0.02
- 2人目が掴んだ赤い封筒の金額は0.28です。
- 3人目が掴んだ赤い封筒の金額は0.03
- 4人目が掴んだ赤い封筒の金額は0.02
- 5人目が掴んだ赤い封筒の金額は0.11です。
- 6人目が掴んだ赤い封筒の金額は0.23です。
- 7人目が掴んだ赤い封筒の金額は0.18です。
- 8人目が掴んだ赤い封筒の金額は0.09
- 9人目は、価値0.03の赤い封筒を受け取りました。
- 10人目が掴んだ赤い封筒の金額は0.01
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
- 10人が1000元を奪い合う ==============================================================
- 赤い封筒の金額を最初に獲得した人の額は: 69.28
- 2人目が掴んだ赤い封筒の金額は14.68です。
- 3人目が掴んだ赤い封筒の金額は373.16です。
- 4人目が掴んだ赤い封筒の金額は274.73
- 5人目が掴んだ赤い封筒の金額は30.77です。
- 6人目が掴んだ赤い封筒の金額は30.76です。
- 7人目は95.55の価値がある赤い封筒を受け取った。
- 8人目は85.20ドル相当の赤い封筒を受け取った。
- 9人目は10.44の価値がある赤い封筒を受け取った。
- 10人目の人は15.43ドル相当の赤い封筒を受け取ります。
- 各赤い封筒の累計金額が赤い封筒の合計金額と等しいかどうかを確認します。結果: true
|