問題タブ [cryptarithmetic-puzzle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
prolog - Prolog で考えられる多くの解決策の 1 つを取得する
Prologを勉強しようとしています。私はこのスクリプトを見ました:
ソース: https://github.com/Anniepoo/prolog-examples/blob/master/sendmoremoney.pl
私はそれをそのように実行し、いくつかの出力を取得します:
それは私に各文字の可能な値の範囲を与えているようです. しかし、各文字が可能な値の 1 つに割り当てられている単一のソリューションを取得するにはどうすればよいでしょうか? 非常に基本的な質問のように思えますが、理解できません。
c++ - 私はこの口頭算術アルゴリズムに行き詰まっています
ABC+DEF=GHI の形式のフォーマット文字列 (スペースなしの 11 文字) を指定すると、A、B、C、D、E、F、G、H、I は 10 進数 (0、1、2、 3, 4, 5, 6, 7, 8, 9) 「プレースホルダー」(必ずしも明確であるとは限りません!) に従って、最大 GHI を与える 3 桁の正の数 (ABC、DEF、および GHI) を見つけるアルゴリズムを開発および実装します。与えられた平等に。文字 (A、B、C、D、E、F、G、H、I) は「プレースホルダー」であるため、数字が繰り返される場合があります。たとえば、式 ABA+BBB=GGB では、すべての B は同じ 10 進数を表します。アルゴリズムは、そのような数が見つからないかどうかもチェックする必要があります。たとえば、式 AAB+AAB=AAB の場合、10 進数で満たすことはできません。あなたのプログラムは、「解がありません!」と言うでしょう。複数の解があるかもしれません。この場合、アルゴリズムが最初に見つけたものだけを出力します。ユーザーが「さようなら!」と言ってプログラムを終了する数式に -1 を入力するまで続行します。
実行例は次のとおりです。
式を入力してください:AAB+AAB=AAB
解決策はありません!数式を入力してください:AAA+BBB=AAA
999+000=999
式を入力してください: -1
さよなら!
これが私が以前に書いたコードです:
しかし、それは問題を正確に解決していないようです。この質問が望むものを得るためにコードを変更するにはどうすればよいですか。