我正在尝试编写一段代码来执行以下操作:
取数字 0 到 9 并为该数字分配一个或多个字母。例如:
0 = N,
1 = L,
2 = T,
3 = D,
4 = R,
5 = V or F,
6 = B or P,
7 = Z,
8 = H or CH or J,
9 = G
当我有像 0123 这样的代码时,对它进行编码就很容易了。它显然会构成代码 NLTD。当引入像 5,6 或 8 这样的数字时,情况会有所不同。像 051 这样的数字会导致不止一种可能性:
NVL 和 NFL
很明显,对于较长的数字,包括 5,6 或 8 之类的几个数字,这会变得“更糟”。
由于数学很差,我还没有想出一个像样的解决方案,让我可以给程序输入一堆数字并让它吐出所有可能的字母组合。所以我很想得到一些帮助,因为我似乎无法弄清楚。挖掘了一些关于排列和组合的信息,但没有运气。
感谢您的任何建议/线索。我需要编写代码的语言是 PHP,但任何一般性提示都将受到高度赞赏。
更新:
更多背景信息:(非常感谢您的快速回复!)
我的问题背后的想法是构建一个脚本,帮助人们轻松地将他们想要记住的数字转换为更容易记住的单词。这有时被称为“伪命理”。
我希望脚本为我提供所有可能的组合,然后将这些组合保存在剥离单词的数据库中。这些被删除的单词只是来自字典,并且我在问题中提到的所有字母都被删除了。这样,要编码的数字通常可以很容易地与一个或多个数据库记录相关联。当这种情况发生时,你最终会得到一个单词列表,你可以用它来记住你想记住的数字。