我有一個任務需要解決一個cryptarithm。但我不能理解我在互聯網上看到的算法。任何人都可以用簡單的話來解釋如何做到這一點?如何確定分配給密碼中每個字母的數字?
1
A
回答
1
作爲一般情況,大多數約束滿足算法是一個兩步過程,其中猜測(或分支)階段後面是演繹階段,其中儘可能多的分配沒有猜測。 (想想數獨,例如)
例子:
S E N D
M O R E
M O N E Y
First step: guess D=1 (remaining guesses = ...)
S E N 1 | D=1
M O R E
M O N E Y
Guess E = 1 (Remaining guesses = ...)
S 1 N 1 | D = 1 | E = 1
M O R 1
M O N 1 Y
We can now deduce that Y = 2 and that the carry value in the second column is 0
0
S 1 N 1 | D = 1 | E = 1, Y = 2
M O R 1
M O N 1 2
當你到達一個死衚衕,backtrack
1
這是可能的解決這類與遺傳算法的問題,這裏是用遺傳算法解決方案https://github.com/pauloremoli/cryptarithmetic
相關問題
- 1. 如何將文本字段中的每個字母分配給Xcode中的某個數字
- 2. 將具體數字分配給字母
- 3. 如何將鍵分配給字符串中的每個字符?
- 4. 如何將一個字母分配給一個整數?
- 5. 如何確定密鑰是字母還是數字?
- 6. 將字符串中的每個字母都拆分爲字母
- 7. 如何從mysql中的AES_ENCRYPT()生成字母數字密碼?
- 8. JQuery - 確認密碼包含非字母數字字符
- 9. 檢查數字和字母的密碼
- 10. 如何確定每三行是否有所需的字母數?
- 11. 多字母密碼
- 12. C#字母數字密碼驗證?
- 13. 如何獲取字符串中每個字母的計數?
- 14. 將int的每個數字分配給int數組
- 15. 在Java中,當按下某個鍵(如字母)時,如何防止該鍵輸出分配給jTextPane的字母?
- 16. 檢查每個可能的字母組合的密碼
- 17. 如何將一個radiobuttonlist分配給GridView中的綁定字段?
- 18. 如何混合兩個字符串中的字母,依次爲每個字母
- 19. 將字母數字值分配給批量變量
- 20. Java確定字符串中的每個字符是否是字母
- 21. 如何使Mediawiki需要字母數字密碼?
- 22. 字母「分頁」檢查是否有每個字母的記錄
- 23. 蟒蛇3.2使用字典分配字母數字值的每個字母和基於它們的字母值找到.txt文件中的字的總和
- 24. Java,分配給一個變量的多個字母
- 25. 將每個數字分配給3個海龜
- 26. 如何確定一個字符串是否包含非字母數字字符?
- 27. 如何通過確定字段中的每個數字來更新字段值?
- 28. Java密碼移位字母
- 29. 替代密碼字母QWERTY
- 30. 使用char確定字母數字?
你試過了哪些算法? – 2011-05-15 08:31:52
獲取字符串中所有可能的字符組合,然後計算總和以解決密碼學問題。但是它非常慢 – amiel 2011-05-15 10:42:33
你是否對密文進行了頻率分析? – 2011-05-15 10:45:46