久しぶりに40-32÷2=4!の話題を考えてみた
約10年前、次のような話題がネット上で賑わいました。
これはいわゆるトンチであり、まずはこちらの解説を要点のみ箇条書きでまとめます。
正しい計算は、$${ 40 - 32 \div 2 = 40 - 16 = 24 }$$
「文系」は小学生が$${ (40 - 32) \div 2 = 8 \div 2 = 4 }$$というよくある誤りをして、元気よく答えてしまったと思っている。
「理系」は$${ 4! = 24 }$$であることから、小学生が正解を答えており、しかも階乗まで理解していることに感心している。
これは階乗の記号と感嘆を表す記号をかけたユーモアのある話題でしたが、「文系も階乗は高校で習うので分かる。バカにするな。」など問題の本質とは離れた部分にも話が広がっていました。
まず、前提として本記事はこのような本質と関係のないことは一切触れず、単純な数学的な話だけをしたいと思っています。
一般化
この話題を一般化してみると、次のようになります。
つまり、2以上の自然数$${ k }$$が与えられているときに、
$$
(a-b) \div c = k,\qquad a-b \div c = k!
$$
の2式を満たす2以上の自然数の組$${ (a,b,c ) }$$を求めるという問題を考えることにします。
結論
次のような、2以上の自然数の組$${ (a,b,c ) }$$を定めればよいことが分かります。
(1) $${ c-1 }$$が$${ k! - k }$$の約数
(2) $${ c < (k-1)! }$$
(3) $${ a = \frac{c}{c-1}(k!-k) }$$
(4) $${ b = a - ck }$$
まずは、これを簡単に証明してみます。
証明
$${ (a-b) \div c = k }$$より、$${ a-b = ck }$$が成り立つ。
これより、$${ b = a - ck }$$となり、まずは(4)が成り立つ。
これを、$${ a-b \div c = k! }$$に代入すると、
$$
a - \frac{a-ck}{c} = k! \qquad \therefore \ a = \frac{c}{c-1} (k!-k)
$$
となり、(3)が成り立つ。
ここで、$${ c-1 }$$と$${ c }$$は互いに素なので、$${ a }$$が自然数であるためには、$${ c-1 }$$が$${ k! - k }$$の約数であることが必要である。
よって、(1)の主張が成り立つ。
最後に、(4)と(3)より、
$$
b = a -ck = \frac{c}{c-1} (k!-k) - ck = \frac{ck}{c-1} \left\{ (k-1)! - c \right\} > 0
$$
より、$${ c < (k-1)! }$$が成り立ち、(2)の主張が従う。 (終)
k=4のとき
それでは、最初の$${ 40 - 32 \div 2 }$$以外に、$${ a - b \div c }$$の正しい計算結果が24($${ =4! }$$)、減法を先に計算してしまった結果が$${ 4 }$$になるような2以上の自然数の組$${ (a,b,c ) }$$を求めてみましょう。
まず、(1)より、$${ c-1 }$$が$${ 4! - 4 =24-4=20 }$$の約数となる自然数$${ c }$$を求めてみます。
$${ c-1 = 1, 2, 4, 5, 10, 20 \quad \therefore c =2, 3, 5, 6, 11, 21}$$
このうち、(2)の不等式$${ c < (4-1)! = 6 }$$を満たす値は、$${ c=2, 3, 5 }$$です。これらに対して(3)、(4)を使って、$${ a, b }$$の値を求めます。
$${ c = 2 }$$のとき、
$$
a = \frac{2}{2-1}(4!-4) = 40,\quad b = 40 - 2\cdot 4 = 32
$$
よって、$${ (a,b,c)=(40,32,2) }$$であり、これは最初の「$${ 40 - 32 \div 2 }$$」のことです。
$${ c = 3 }$$のとき、
$$
a = \frac{3}{3-1}(4!-4) = 30,\quad b = 30 - 3\cdot 4 = 18
$$
よって、$${ (a,b,c)=(30,18,3) }$$
$${ c = 5 }$$のとき、
$$
a = \frac{5}{5-1}(4!-4) = 25,\quad b = 25 - 5\cdot 4 = 5
$$
よって、$${ (a,b,c)=(25,5,5) }$$
以上より、最初の例以外に「$${ 30 - 18 \div 3 }$$」と「$${ 25 - 5 \div 5 }$$」がこのような性質をみたす計算式になります。
Pythonを使って求める
それでは、最後にPythonを使って$${ k }$$が他の値のときについても求めてみましょう。
プログラム
やや粗いものですが、下記を実行させて調べてみることにします。
k = int(input("小学生が「k!」と答えるときのkの値: "))
n = math.factorial(k) - k
c = 2
cMax = math.factorial(k-1)
while c < cMax:
if n % (c-1) == 0:
a = n * c / (c-1)
b = a - c * k
ans = (int(a), int(b) ,c)
print(ans)
c = c + 1
k=5のとき
$${ 230 - 220 \div 2 = 120 = 5! , \quad (230 - 220) \div 2 = 5 }$$
$${ 138 - 108 \div 6 = 120 = 5! , \quad (138 - 108) \div 6 = 5 }$$
k=6のとき
12組もあるので、最初の2つだけ見てみます。
$${ 1428 - 1416 \div 2 = 720 = 6! , \quad (1428 - 1416) \div 2 = 6 }$$
$${ 1071 - 1053 \div 3 = 720 = 6! , \quad (1071 - 1053) \div 3 = 6 }$$
まとめ
久しぶりにこの話題を掲載しているサイトをたまたま閲覧し、ふと思って計算してみたことを記事にしました。
懐かしいと思った方も、初めて知った方も、ちょっとした息抜きとして楽しんでいただけましたら嬉しく思います。
最後までお読みいただき、ありがとうございました。