FC2ブログ
08«1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.»10

たまひびとらの絵本の実

読書好きな姉妹と弟と父母の読んだ本

10 Puzzle  

日本で電車に乗るとこどもは切符の4桁の数字で10ができるかをやっている。それをプログラムで解けるのかとこどもに聞かれ、作ってみた。なお、近いプログラムをネットで参考にさせていただいた。

from itertools import permutations, product

problem = input('Input 4 digits (for example, 1234)')
print("Problem is ", problem)
print('Solving...')

flag = False
Brackets = ['%s%s%s%s%s%s%s', '(%s%s%s)%s%s%s%s', '(%s%s%s%s%s)%s%s', '%s%s(%s%s%s)%s%s',
'(%s%s%s)%s(%s%s%s)', '%s%s(%s%s(%s%s%s))']
Operator = ['+', '-', '*', '/']

for OP1, OP2, OP3 in product(Operator, Operator, Operator):
for a, b, c, d in permutations(problem):
for pattern in Brackets:
f = pattern % (a, OP1, b, OP2, c, OP3, d)
try:
result = eval(f)
except ZeroDivisionError:
continue
print(f, ' = ', result)
if abs(result-10) < 0.001:
print('You got a solution!')
flag = True
break
if flag:
break
if flag:
break

if flag==False:
print('There is no solution.')
スポンサーサイト



category: プログラム

cm 0   tb 0   page top

コメント

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://tamahibi.blog122.fc2.com/tb.php/3752-5c667071
この記事にトラックバックする(FC2ブログユーザー)

page top

訪問者数

カテゴリ

最新記事

最新コメント

最新トラックバック