Με δεδομένο ένα παζλ alphametics, βρες τη σωστή λύση.
Το Alphametics είναι ένα παζλ όπου τα γράμματα μέσα στις λέξεις αντικαθίστανται από αριθμούς.
Για παράδειγμα, SEND + MORE = MONEY:
S E N D
M O R E +
-----------
M O N E Y
Αντικαθιστώντας τα με έγκυρους αριθμούς προκύπτει:
9 5 6 7
1 0 8 5 +
-----------
1 0 6 5 2
Αυτό είναι σωστό γιατί κάθε γράμμα αντικαθίσταται από έναν διαφορετικό αριθμό και οι λέξεις, μεταφρασμένες σε αριθμούς, σχηματίζουν ένα έγκυρο άθροισμα.
Κάθε γράμμα πρέπει να αντιπροσωπεύει ένα διαφορετικό ψηφίο και το πρώτο ψηφίο ενός πολυψήφιου αριθμού δεν πρέπει να είναι μηδέν.
Μπορεί (ή μπορεί και όχι!) να θέλεις να καλέσεις τη συνάρτηση permutations(a, t) από το Combinatorics.jl στη λύση σου.
permutations(a ,t), αφού βρίσκεται ήδη στον χώρο ονομάτων. Μπορείς να δεις τον πηγαίο κώδικα στην καρτέλα με την ετικέτα permutations.jl.include("permutations.jl") στην αρχή του αρχείου της λύσης σου για να έχεις πρόσβαση σε μια έκδοση της permutations(a, t) που βρίσκεται εκεί.Αν χρησιμοποιείς τοπικά το Combinatorics.jl v1.0.3, η συνάρτηση permutations(a, t) είναι πολύ αργή στα μεγάλα tests.
Χρησιμοποίησε είτε το αρχείο permutations.jl που σου παρέχεται, είτε αναβάθμισε σε Combinatorics.jl v≥1.1.0, είτε κάνε "υποβάθμιση" σε v1.0.2.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Julia με 35 έννοιες128 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.