改題の解答
お=5まではYoutubeを見れば分かるので省略。
条件より、
あ+い+え+お=20———①
え+お+き+く=20———②
い+う+お+か=20———③
お+か+く+け=20———④
①,②より、あ+い=き+く———⑤
③,④より、い+う=く+け———⑥
⑤-⑥より、あ-う=き-け
よって、あ+け=う+き———☆
ここで、5を除いた1~9の数字を偶数と奇数に分けると、
1+3+7+9=20
2+4+6+8=20
で、1+9=3+7=10,2+8=4+6=10
である。
そこで、図の「お」に「5」を固定して、「あ」を「1」にする。(この時、対称性から「う」,「き」,「け」の置いても回転すれば同じになるので、「あ」の場合だけを考えれば良い。)
すると、☆と「あ+う+き+け=20」より「け」=「9」である。
また、い+え=20-1-5=14である。そこで、「え」を「6」にすると「い」は「8」。(この時、対称性から「い」を「6」にしても裏返せば同じになるので、「え」の場合だけを考えれば良い。)
また、き+く=20-6-5=9である。そこで、「き」を「7」にすると「く」は「2」。また、☆と「あ+う+き+け=20」より「う」=10-7=3
よって、残りは「か」と「4」だけで、当てはめると全て合う。
よって、答えの1例は、
あ=1,い=8,う=3,え=6,お=5,か=4,き=7,く=2,け=9である。
ここで、「き」,「く」を「7」,「2」とした所を「1」,「6」(「6」,「1」)などにしても途中で矛盾を起こしてあり得ない事が証明出来るが、それは自分でやって下さい。結局、この1通りの回転と裏返しの4×2の8通りしかない事は簡単に分かります。
一応、pythonでも裏を取ってみました。
ans = [ ]
for a in range(1,10):
for b in range(1,10):
for c in range(1,10):
for d in range(1,10):
for e in range(1,10):
for f in range(1,10):
for g in range(1,10):
for h in range(1,10):
for i in range(1,10):
if a+c+g+i==20 and b+d+f+h==20\
and a+b+d+e==20 and b+c+e+f==20\
and d+e+g+h==20 and e+f+h+i==20\
and a!=b and a!=c and a!=d and a!=e and a!=f and a!=g and a!=h and a!=i\
and b!=c and b!=d and b!=e and b!=f and b!=g and b!=h and b!=i\
and c!=d and c!=e and c!=f and c!=g and c!=h and c!=i\
and d!=e and d!=f and d!=g and d!=h and d!=i\
and e!=f and e!=g and e!=h and e!=i\
and f!=g and f!=h and f!=i\
and g!=h and g!=i\
and h!=i:
ans.append((a,b,c,d,e,f,g,h,i))
print(ans)
結果:[(1, 6, 7, 8, 5, 2, 3, 4, 9), (1, 8, 3, 6, 5, 4, 7, 2, 9), (3, 4, 9, 8, 5, 2, 1, 6, 7), (3, 8, 1, 4, 5, 6, 9, 2, 7), (7, 2, 9, 6, 5, 4, 1, 8, 3), (7, 6, 1, 2, 5, 8, 9, 4, 3), (9, 2, 7, 4, 5, 6, 3, 8, 1), (9, 4, 3, 2, 5, 8, 7, 6, 1)]
よって、8通りでOK。因みに、5分~10分ぐらいかかるので途中で諦めないで下さい。因みに、print(ans)をans.append((a,b,c,d,e,f,g,h,i))の真下に持ってくれば、途中経過が出て、30秒とか1分ごとに書き足していかれるので諦めないで済みます。
おまけ: