flowchart TD
R["perm(abc)"] --> A["a + perm(bc)"] & B["b + perm(ac)"] & C["c + perm(ab)"]
A --> A1["abc"] & A2["acb"]
B --> B1["bac"] & B2["bca"]
C --> C1["cab"] & C2["cba"]
Απαρίθμηση: Υποσύνολα και Μεταθέσεις
Κάθε στοιχείο: μέσα (1) ή έξω (0) → μια λίστα \(n\) bits ↔︎ ένας ακέραιος \(0 \ldots 2^n{-}1\):
\(2^n\) υποσύνολα συνολικά.
flowchart TD
R["perm(abc)"] --> A["a + perm(bc)"] & B["b + perm(ac)"] & C["c + perm(ab)"]
A --> A1["abc"] & A2["acb"]
B --> B1["bac"] & B2["bca"]
C --> C1["cab"] & C2["cba"]
Για κάθε δυνατό πρώτο στοιχείο, μεταθέτουμε αναδρομικά τα υπόλοιπα:
\(n!\) μεταθέσεις — μεγαλώνει πολύ πιο γρήγορα από το \(2^n\).
itertoolsΧωρίς να αποθηκεύσουμε όλα τα αποτελέσματα ταυτόχρονα.
Έλεγχος σε πολλές περιπτώσεις, πριν/αντί για αυστηρή απόδειξη.
itertools⤺ Πλήρεις σημειώσεις · Πρόγραμμα μαθήματος
Τμήμα Μαθηματικών, ΕΚΠΑ