有名なパズルが続きます。 SEND + MORE = MONEYMore Money Puzzle in Python
追加が正しいように、式の各文字を1〜9の整数(重複なし)で置き換えます。このパズルを解くプログラムを書く。ヒント:ブルートフォースはうまくいく(すべての可能性を試す)。
はここで、これまでに私のコードです:
def solution():
letters = ('s', 'e', 'n', 'd', 'm', 'o', 'r', 'y')
for s in range(9, 0, -1):
for e in range(9, -1, -1):
for n in range(9, -1, -1):
for d in range(9, -1, -1):
for m in range(9, 0, -1):
for o in range(9, -1, -1):
for r in range(9, -1, -1):
for y in range(9, -1, -1):
if len(set((letters))) != len(letters):
send = 1000 * s + 100 * e + 10 * n + d
more = 1000 * m + 100 * o + 10 * r + e
money = 10000 * m + 1000 * o + 100 * n + 10 * e + y
if send + more == money:
return send, more, money
print(solution())
しかし、それは動作しません。それは出力を与えません。これをどうすれば解決できますか?
'len(set((letters)))!= len(letters)'は不変で、決して真です。それはなんのためですか? – kevmo314
@Shankarしかし、それは起こっていない。 – Veedrac
@Shankar - このような文字列の乗算は行われません。 – TigerhawkT3