Dies ist keine Hausaufgaben.Helfen Sie mir, diese Python 3.x Self-Challenge zu beenden
Ich sah this article praising Linq library and how great it is für Kombinatorik Zeug, und ich dachte mir: Python kann es in einer lesbareren Weise tun.
Nach einer halben Stunde mit Python tupfte ich fehlgeschlagen. Bitte beenden Sie, wo ich aufgehört habe. Mach es auch möglichst pythonisch und effizient.
from itertools import permutations
from operator import mul
from functools import reduce
glob_lst = []
def divisible(n): return (sum(j*10^i for i,j in enumerate(reversed(glob_lst))) % n == 0)
oneToNine = list(range(1, 10))
twoToNine = oneToNine[1:]
for perm in permutations(oneToNine, 9):
for n in twoToNine:
glob_lst = perm[1:n]
#print(glob_lst)
if not divisible(n):
continue
else:
# Is invoked if the loop succeeds
# So, we found the number
print(perm)
Vielen Dank!
Do Sie möchten die meisten Pythonic oder am effizientesten? Sie können sehr unterschiedliche Dinge sein. :) –
Ich will alles und ich will es jetzt;) Hm ... eins von beiden sowie beides. Es gibt keine beste Antwort, obwohl ich eine auswählen müsste. Bitte geben Sie bei Bedarf einen time-it-liner für Leistungstests an. –
Warum verwenden Sie bitweise XOR in Ihrer teilbaren Funktion? Meinst du ** statt ^? – dan04