Cryptarithm

Cryptarithm est un type d'expression mathématique où les chiffres sont représentés par des lettres. Il y a une correspondance univoque entre les lettres et les chiffres qui rend l'équation arithmétique vraie. Aucun numéro ne peut pas commencer par un zéro, et cryptarithm devrait avoir une seule solution possible.

Cryptarithm peut être considéré comme bon, si à la suite de cryptage il résulte une phrase signifiante et l'expression a une solution unique. Par exemple :

MOTHER+FATHER=PARENT=>196753+286753=483506
ONE+THREE+FOUR=EIGHT=>942+15722+3987=20651
LETTERS+ALPHABET=SCRABBLE=>7088062+17531908=24619970
SIX*TWO=TWELVE=>986*345=340170

L'expression arithmétique peut contenir des parenthèses, des signes de plus (+), soustraction (-), multiplication (*), division (/), élévation à une puissance (^) et factorielle (!). Aussi le caractère ? peut être utilisé à la place de tout chiffre.

HE^2=SHE=>252=625
C+O+O=L!=>6+9+9=4!
WHO-AM=I?=>105-28=77

L'utilisateur peut spécifier les valeurs connues pour des lettres. Cela permet de réduire considérablement le temps de recherche.

L'utilisateur peut également définir que les voyelles correspondent aux chiffres pairs, les consonnes correspondent aux chiffres impairs (ou vice versa). Par exemple, si les voyelles correspondent aux chiffres impairs et les consonnes correspondent aux chiffres pairs, ce cryptarithm n'a que la seule solution possible :

TWO+TWO=FOUR=>469+469=0938

Note: La liste de voyelles peut être définie dans la fenêtre Paramètres. Les autres lettres de l'alphabet sont considérées comme des consonnes.

Une caractéristique de l'algorithme de calcul utilisé dans le programme Cross+A est que non seulement le résultat final du calcul, mais aussi les résultats intermédiaires à chaque étape doivent être des valeurs entières. Autrement dit, le programme résolvant A:B+C:B=B ne peut pas trouver la réponse 1:2+3:2=2. Les exceptions sont les calculs des racines carrée et cubique :

AB^(1/2)=5=>25½=5
ABC^(1/3)=5=>125=5