見出し画像

和が3の倍数になる確率( by生成AI)

ふと眼に止まってクスッと笑ってしまったこちらの投稿。


問題:
1から10までの整数が記された10枚カードから3枚を抜き出したときに、数字の和が3の倍数となる確率

慶応の入試問題が元ネタかな?


生成AIはこういう問題に対して、非常に強い。
(以下perplexity無料版の出力。
正答+Pythonでの説明もかなりクオリティ高い)


1から10までの整数が記された10枚カードから3枚を抜き出したときに、数字の和が3の倍数となる確率の解き方

1. 問題の理解

1から10までの整数が記された10枚のカードから3枚を抜き出したときに、数字の和が3の倍数となる確率を求めます。

2. 全ての組み合わせの数を計算

まず、10枚のカードから3枚を選ぶ組み合わせの総数を計算します。組み合わせの数は次のように計算されます:

$$ \binom{10}{3} = \frac{10!}{3!(10-3)!} = 120 $$

3. 数字の和が3の倍数となる条件

次に、3枚のカードの和が3の倍数となる条件を考えます。3の倍数の性質を利用して、カードの数字を3で割った余りに注目します。

1から10までの数字を3で割った余りは次のようになります:

  • 余り0: 3, 6, 9

  • 余り1: 1, 4, 7, 10

  • 余り2: 2, 5, 8

4. 3の倍数となる組み合わせ

和が3の倍数となるための条件は以下の3つです:

  1. 余りが全て同じ(0, 0, 0)、(1, 1, 1)、(2, 2, 2)

  2. 余りが異なる(0, 1, 2)

(1) 余りが全て同じ場合

  • 余り0: (3, 6, 9) の組み合わせは1通り。

  • 余り1: (1, 4, 7, 10) から3枚選ぶ組み合わせは $$\binom{4}{3} = 4$$ 通り。

  • 余り2: (2, 5, 8) の組み合わせは1通り。

合計で $$1 + 4 + 1 = 6$$ 通り。

(2) 余りが異なる場合

  • 余り0, 1, 2から1枚ずつ選ぶ組み合わせの数は次のように計算されます:

    • 余り0から1枚選ぶ: 3通り

    • 余り1から1枚選ぶ: 4通り

    • 余り2から1枚選ぶ: 3通り

合計で $$3 \times 4 \times 3 = 36$$ 通り。

5. 確率の計算

和が3の倍数となる組み合わせの総数は $$6 + 36 = 42$$ 通りです。したがって、確率は次のように計算されます:

$$ \frac{42}{120} = \frac{7}{20} $$

6. 結論

1から10までの整数が記された10枚のカードから3枚を抜き出したときに、数字の和が3の倍数となる確率は $$\frac{7}{20}$$ です。



Pythonで上記をわかりやすく表示するプログラムを作成

from itertools import product, combinations

# 1から10までの数を3で割った余りで分類
remainder_0 = [3, 6, 9]  # 3で割り切れる数
remainder_1 = [1, 4, 7, 10]  # 3で割って1余る数
remainder_2 = [2, 5, 8]  # 3で割って2余る数

print("3で割った余りによる分類:")
print(f"余り0の数: {remainder_0}")
print(f"余り1の数: {remainder_1}")
print(f"余り2の数: {remainder_2}")

# 組み合わせを表示する関数
def print_combinations(title, combs):
    print(f"\n{title}:")
    for i, comb in enumerate(combs, 1):
        print(f"  {i}. {comb} (合計: {sum(comb)})")
    print(f"  総数: {len(combs)}")

# パターン1: 全て余り0
pattern1 = list(combinations(remainder_0, 3))
print_combinations("パターン1: 全て余り0", pattern1)

# パターン2: 余り0が1つ、余り1が1つ、余り2が1つ
pattern2 = list(product(remainder_0, remainder_1, remainder_2))
print_combinations("パターン2: 余り0が1つ、余り1が1つ、余り2が1つ", pattern2)

# パターン3: 全て余り1
pattern3 = list(combinations(remainder_1, 3))
print_combinations("パターン3: 全て余り1", pattern3)

# パターン4: 全て余り2
pattern4 = list(combinations(remainder_2, 3))
print_combinations("パターン4: 全て余り2", pattern4)

# 3の倍数になる組み合わせの総数
divisible_by_3 = len(pattern1) + len(pattern2) + len(pattern3) + len(pattern4)

print("\n3の倍数になる組み合わせの内訳:")
print(f"1. 全て余り0: {len(pattern1)}")
print(f"2. 余り0, 1, 2の組み合わせ: {len(pattern2)}")
print(f"3. 全て余り1: {len(pattern3)}")
print(f"4. 全て余り2: {len(pattern4)}")
print(f"\n3の倍数になる組み合わせの総数: {divisible_by_3}")

# 全ての組み合わせの数
total_combinations = len(list(combinations(range(1, 11), 3)))
print(f"全ての組み合わせの数: {total_combinations}")

# 確率の計算
probability = divisible_by_3 / total_combinations
print(f"\n確率: {divisible_by_3} / {total_combinations} = {probability:.4f}")
print(f"確率(パーセント): {probability * 100:.2f}%")
3で割った余りによる分類:
余り0の数: [3, 6, 9]
余り1の数: [1, 4, 7, 10]
余り2の数: [2, 5, 8]

パターン1: 全て余り0:
  1. (3, 6, 9) (合計: 18)
  総数: 1

パターン2: 余り0が1つ、余り1が1つ、余り2が1つ:
  1. (3, 1, 2) (合計: 6)
  2. (3, 1, 5) (合計: 9)
  3. (3, 1, 8) (合計: 12)
  4. (3, 4, 2) (合計: 9)
  5. (3, 4, 5) (合計: 12)
  6. (3, 4, 8) (合計: 15)
  7. (3, 7, 2) (合計: 12)
  8. (3, 7, 5) (合計: 15)
  9. (3, 7, 8) (合計: 18)
  10. (3, 10, 2) (合計: 15)
  11. (3, 10, 5) (合計: 18)
  12. (3, 10, 8) (合計: 21)
  13. (6, 1, 2) (合計: 9)
  14. (6, 1, 5) (合計: 12)
  15. (6, 1, 8) (合計: 15)
  16. (6, 4, 2) (合計: 12)
  17. (6, 4, 5) (合計: 15)
  18. (6, 4, 8) (合計: 18)
  19. (6, 7, 2) (合計: 15)
  20. (6, 7, 5) (合計: 18)
  21. (6, 7, 8) (合計: 21)
  22. (6, 10, 2) (合計: 18)
  23. (6, 10, 5) (合計: 21)
  24. (6, 10, 8) (合計: 24)
  25. (9, 1, 2) (合計: 12)
  26. (9, 1, 5) (合計: 15)
  27. (9, 1, 8) (合計: 18)
  28. (9, 4, 2) (合計: 15)
  29. (9, 4, 5) (合計: 18)
  30. (9, 4, 8) (合計: 21)
  31. (9, 7, 2) (合計: 18)
  32. (9, 7, 5) (合計: 21)
  33. (9, 7, 8) (合計: 24)
  34. (9, 10, 2) (合計: 21)
  35. (9, 10, 5) (合計: 24)
  36. (9, 10, 8) (合計: 27)
  総数: 36

パターン3: 全て余り1:
  1. (1, 4, 7) (合計: 12)
  2. (1, 4, 10) (合計: 15)
  3. (1, 7, 10) (合計: 18)
  4. (4, 7, 10) (合計: 21)
  総数: 4

パターン4: 全て余り2:
  1. (2, 5, 8) (合計: 15)
  総数: 1

3の倍数になる組み合わせの内訳:
1. 全て余り0: 1
2. 余り0, 1, 2の組み合わせ: 36
3. 全て余り1: 4
4. 全て余り2: 1

3の倍数になる組み合わせの総数: 42
全ての組み合わせの数: 120

確率: 42 / 120 = 0.3500
確率(パーセント): 35.00%


勉強の仕方が大きく変わりつつある今日この頃。
(しかし、使いこなしてるのは一定層のみで広がらないんだよねぇ・・・)

この記事が参加している募集

公務員で受取出来ませんので、お気持ちだけで大丈夫です~