Dr. Layton Rätsel und Python als Lösungshilfe
Verfasst: Freitag 8. Januar 2010, 21:02
Ich habe dieses schöne Rätselspiel "Dr. Layton und das geheimnissvolle Dorf" für den Nintendo DS. Einige der Rätsel haben mich animiert die Lösung mit Python zu suchen.
1. Gesucht sind eine fünf- und eine vierstellige Zahl, die voneinander subtrahiert die Zahl 33333 ergeben, wobei jede der Ziffern 1-9 nur einmal vorkommen darf:
2. Sieben der Ziffern von 1-9 sollen in folgendes Muster eingetragen werden, sodass das Produkt in jeder Richtung gleich ist:
Beides wahrscheinlich nicht die optimalsten Lösungen, aber auf die Schnelle hat es geholfen 
1. Gesucht sind eine fünf- und eine vierstellige Zahl, die voneinander subtrahiert die Zahl 33333 ergeben, wobei jede der Ziffern 1-9 nur einmal vorkommen darf:
Code: Alles auswählen
from itertools import permutations
for p in permutations('12356789'):
a = 40000+ int(''.join(p[0:4]))
b = int(''.join(p[4:]))
if a-b == 33333:
print((a, b))
Code: Alles auswählen
n n
n n n
n n
Code: Alles auswählen
from itertools import permutations
from operator import mul
from functools import reduce
for p in permutations(list(range(1,10))):
a = p[0:3]
b = p[3:6]
c = (a[1], p[7], b[1])
if reduce(mul, a) == reduce(mul, b) == reduce(mul, c):
print((a, b, c))
break
