覆面算のパズルが与えられたら、正しい答えを見つけましょう。
覆面算は、単語の文字を数字に置き換えるパズルです。
たとえば、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
これは、それぞれの文字が異なる数字に置き換えられ、単語を数字に変換すると正しい足し算になるからです。
それぞれの文字は異なる数字を表す必要があり、複数桁の数の先頭の数字は0であってはいけません。
解答では、Combinatorics.jlの関数permutations(a, t)を呼びたくなるかもしれません(そうでない場合もあります)。
permutations(a ,t)はすでに名前空間にあるので自由に呼び出せます。ソースコードはpermutations.jlというタブで確認できます。include("permutations.jl")を追加すると、そこにあるpermutations(a, t)を使えるようになります。ローカルでCombinatorics.jlのv1.0.3を使うと、大きなテストではpermutations(a, t)が非常に遅くなります。
用意されているpermutations.jlを使うか、Combinatorics.jlをv≥1.1.0にアップグレードするか、v1.0.2に「ダウングレード」してください。