問題タブ [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.

0 投票する
2 に答える
1095 参照

prolog - 文字に数字を割り当てる

暗号化(文字に数字を割り当てる)の問題を解決しようとしています

GERALD + DONALD = ROBERT

各文字は異なる数字(0から9の間)を表します。各単語の最初の文字は、0とは異なる数字を表します。

問題 :

ソフトウェアはエラーを表示せず、解決策も表示しません。

0 投票する
4 に答える
6914 参照

prolog - Prolog で暗号算術パズルを解く方法

暗号算術パズルを解くための Prolog プログラムを作成する必要があります。

変数 [A, M, P, D, Y] を 0 から 9 の値に割り当てて、方程式 AM+PM を満たす関数 solve([A, M, P, D, Y]) を作成する必要があります。 =日。各変数には異なる値が割り当てられ、A、P、および D は 0 に等しくなりません。

この関数を書き始めましたが、プログラムの実行中に問題が発生しました。A、P、D がゼロにならないという制限を設定しました。アルゴリズムを調べているうちに、D は 1 でなければならないことに気がついたので、プログラムの最初にそれを定義しました。M に対して 2 つの異なる変数 (M1 と M2) を定義し、それらを互いに等しく設定しました。これは、パズル内の異なる M が同じ値に割り当てられる必要があるためです。さまざまな変数に場所を割り当て、パズルに基づいてそれらを合計しました。キャリーイン変数で運ばれる変数を考慮しました。プログラムはコンパイルされますが、関数が実行されません。

私は何を間違っていますか?変数の定義に何か問題がありますか? 2 つの異なる M 変数を定義する必要がありますか、それとも 1 つで十分ですか?

0 投票する
3 に答える
5896 参照

math - 暗号化文字の値を見つける方法は?

交差 + 道路 = 危険 ==> 答え ==> 96233 + 62513=158746

別の例で答えを見つけやすくするための指示を探しています。私の先生の一人は、木を使ってそれを見つけることができると言いました。しかし、ツリーを使用して答えを見つけることが不可能な場合があります。

通常、自分が暗号演算ソリューションであるとどのように判断しますか?

0 投票する
2 に答える
961 参照

sql - リレーショナル データベースを使用して暗号演算パズルを解く

暗号演算パズルが与えられたとします。

送信 + もっと = お金

目標は、数字 (0 ~ 9) を文字に置き換えて、足し算がうまくいくようにすることです。

問題に数学的にアプローチする方法は理解していますが、リレーショナル データベースでこれを解決する方法がわかりません。

この問題にアプローチするには、スキーマをどのように設計すればよいでしょうか?

この問題を解決しようとする SQL クエリはどのように見えるでしょうか?

編集: いくつかの制約があります:

  1. 全体を通して、特定の文字には同じ番号を使用する必要があります。たとえば、文字 E の "5" を推測した場合、E は出現するすべての場所で値 "5" を取得する必要があります。
  2. たとえば、「4」を E と M の両方に割り当てることはできません。
  3. 数字 (単語) の先頭に 0 を付けないでください
0 投票する
1 に答える
378 参照

prolog - 暗号文の実行時間

初心者コースでは、Prologでいくつかの古典的な暗号文を実行するように依頼されました。これらはすべて機能しますが、これは解決策を見つけることなく継続しますが、過熱によってPCを爆破させようとする場合を除きます。

40 + TEN + TEN = SIXTY

ヒューマンエラーを防ぐために、すべての桁間の不等式はこのPythonビットで記述されています。

ここには、0〜9が数字であると主張する一連の10の単純な事実(digit(0)。からdigit(9))は書かれていません。

誰かが明白な間違いを見つけてくれませんか、それとも実際には10分以上かかりますが、より単純な6桁の暗号文はすぐに解決しますか?

ありがとう!

0 投票する
3 に答える
2048 参照

c - 次の暗号/英字パズルのブルート フォース アルゴリズムを見つける

次の暗号を解決するプログラムを C で作成しようとしています。

1 + 1 = 2

セブンが素数

9は完全な正方形です

つまり、単語onetwoSevennineの数値を見つける必要があります。ここで、各文字 (o、n、e、t、w、s、v、i) に数値が割り当てられ、完全な数も満たされます。上記のすべての条件。

私は、単語ごとにint配列を作成し、1)各単語が条件を満たしているかどうかを確認し(たとえば、「7」の素数である)、2)配列内の各整数が一致しているかどうかを確認するという方針に沿って考えていました他の単語の値で、他の単語もそれぞれの条件を満たしていることがわかります。

ただし、反復ごとに int 配列を単一の int に継続的に変換する必要があり、配列内の各要素を同時に他の単語と一致させる方法がわからないため、これが機能していることは実際にはわかりません。

おそらく、単語ごとに真でなければならない MIN と MAX の数値範囲を知っていると便利でしょうか?

何か案は?

0 投票する
3 に答える
2128 参照

math - C++ で暗号解読ソルバーを作成する

暗号算術パズルを表す 3 つの文字列を取る C++ プログラムを計画しています。たとえば、TWO、TWO、および FOUR が与えられた場合、プログラムは、数式が

は true で、入力は右揃えであると想定されます。これに対処する 1 つの方法は、もちろん、答えが最終的に見つかるまで、ネストされたループを使用して各文字に可能なすべての置換を割り当て、合計を繰り返し試行するなど、力ずくで実行することです。

これは非常に非効率的ですが、各変数のドメインを制限するために一連の演繹が実行された後、根底にあるループチェックは実行可能な (または必要でさえある) 方法である可能性があると思います。視覚化するのはちょっと難しいと思いますが、最初にこのような一般的な/パディングされた構造を想定するのが合理的でしょうか (各 X は必ずしも明確ではない数字を表し、各 C は桁上げ数字です。この場合、 0 または 1 のいずれかになります)? :

それを念頭に置いて、さらにいくつかの計画的な考えを以下に示します。

-問題では先頭のゼロは指定されませんが、オペランドを一致させる/一致させるために、適切な場所に十分な数を追加する必要があります。

-おそらく「ドメイン」テーブルにベクトルとして保存されている、各文字の可能な値0〜9のセットから始めて、控除が行われるときにこれから値を削除する必要があると考えています。たとえば、このように文字が並んでいるのを見たら

、 C がゼロであることがわかり、これにより、そのドメインから他のすべての値が削除されます。かなりの数の推論を思いつくことができますが、それらをあらゆる種類の小さな状況に一般化してコードに入れることは、一見すると難しいように思えます。

-物事を実行し、ドメインテーブルから多くの値を起動する一連の優れた推論があると仮定すると、すべてをループして、状態空間が合理的なソリューションを生成するのに十分小さいことを願っています時間の長さ。しかし、それ以上のものがあるはずだと感じています!-- 設定するための巧妙な方程式か、それに沿ったものかもしれません。

ヒントをいただければ幸いです。

0 投票する
2 に答える
9457 参照

java - 簡単な暗号算術パズルを解く Java プログラム

else if (400*T + 40*O + 4*O == 1000*G + 100*O + 10*O + D)編集: プログラムが動作するようになりましたが、パズルを解く鍵となる部分を明確にする必要があります。プログラムのすべての部分を完全に理解したいだけです、ありがとう。

これはレビューのみを目的としており、私はそれを理解するために数時間を費やしました. 変数がすべてゼロになっているか、無限ループになっています。本に書かれているように、ここに質問があります:

「暗号算術パズルでは、数式は文字を使用して記述されます。各文字は 0 から 9 までの数字ですが、2 つの文字が同じであってはなりません。サンプルの問題は次のとおりです。SEND + MORE = MONEY パズルの解は S です。 = 9、R = 8、O = 0、M = 1、Y = 2、E = 5、N = 6、D = 7. 次の暗号算術パズルの解を見つけるプログラムを作成してください: TOO + TOO + TOO + TOO = GOOD 最も単純な手法は、一意の文字 (この場合は T、O、G、D) ごとにネストされたループを使用することです. ループは、0 から 9 までの数字を各文字に体系的に割り当てます. たとえば、最初に T = 0、O = 0、G = 0、D = 0、次に T = 0、O = 0、G = 0、D = 1、次に T = 0、O = 0、G = 0、D = 2 を試す可能性があります。など、T = 9、O = 9、G = 9、D = 9 まで。ループ本体で、各変数が一意であり、方程式が満たされていることをテストします。式を満たす文字の値を出力してください。」

ご覧のとおり、私はすべての for ループを while ループに入れて、すべてを制御しようとしました。(まったく)うまくいかなかったので、コメントアウトしました。

0 投票する
1 に答える
3597 参照

cryptarithmetic-puzzle - シンプルな暗号パズル

この暗号演算の問題を解決する方法を探しています:

それぞれの文字は数字を表します。

これを手動で解決するにはどうすればよいでしょうか。また、それはプログラムで解決することとどのように関連していますか?

前もって感謝します