Das sind keine Hausaufgaben.
Ich habe diesen Artikel gesehen, der die Linq-Bibliothek lobt und wie toll es ist , Kombinatorik-Sachen zu machen, und ich dachte mir: Python kann es lesbarer machen.
Nachdem ich eine halbe Stunde mit Python getupft habe, bin ich gescheitert. Bitte beenden Sie, wo ich aufgehört habe. Mach es auch möglichst pythonisch und effizient.
%Vor%Danke!
Hier ist eine kurze Lösung, die itertools.permutations verwendet:
%Vor%Ich habe absichtlich die Teilbarkeitsprüfungen um 1 und um 9 weggelassen, da sie immer zufrieden sein werden.
Hier ist meine Lösung. Ich mag alle Dinge von unten nach oben ;-). Auf meiner Maschine läuft es etwa 580 mal schneller (3,1 ms vs. 1,8 sec) als Marks:
%Vor%EDIT: Auch das funktioniert und doppelt so schnell (1,6 ms):
%Vor%Hier ist meine Lösung (nicht so elegant wie die von Mark, aber sie funktioniert immer noch):
%Vor%Tags und Links python combinatorics python-3.x puzzle