Algorithm 如何创建从3个数字到3个完全不同的数字(以10为基数)的一对一映射?

Algorithm 如何创建从3个数字到3个完全不同的数字(以10为基数)的一对一映射?,algorithm,mapping,Algorithm,Mapping,如何创建从3个数字到3个完全不同的数字(以10为基数)的一对一映射 秩序很重要。给定的字符串有不同的数字 例如,给定012,接收345。结果字符串不能包含原始字符串中的数字。对于所有10*9*8=720可能性,映射应为一对一 我仅有的几个数学概念,如数字的加减,似乎都允许重复一个数字。找到最小的k,将k加到mod 10的每一个数字上,就会得到一组不相交的数字。那样做。逆运算是从每个数字mod 10中减去相同的k 正确性证明示意图:所有算术运算均为mod 10。第一个观察结果是,始终存在一个合适的

如何创建从3个数字到3个完全不同的数字(以10为基数)的一对一映射

秩序很重要。给定的字符串有不同的数字

例如,给定
012
,接收
345
。结果字符串不能包含原始字符串中的数字。对于所有
10*9*8=720
可能性,映射应为一对一


我仅有的几个数学概念,如数字的加减,似乎都允许重复一个数字。

找到最小的k,将k加到mod 10的每一个数字上,就会得到一组不相交的数字。那样做。逆运算是从每个数字mod 10中减去相同的k


正确性证明示意图:所有算术运算均为mod 10。第一个观察结果是,始终存在一个合适的k。有10个k选项,但只有9个可能的冲突,其中一个冲突由输入中的一个位置和输出中的一个位置组成,该位置包含相同的数字。每个冲突都是由一个k选项触发的。第二个观察结果是,给定一个输入(a,b,c),k的值在输入(a+d,b+d,c+d)之间是不变的,其中d是一个数字。因此,逆运算实际上是逆运算(因为k的值被确定为相同的),因此这两个运算都是双射运算。

ROT5为什么不呢?换句话说,用((d+x)mod 10)替换每个数字d?@高性能数据库,我想你的意思是每一个3位数的字符串都可能被映射到/与210个不同的字符串配对。@ LeeDaNIELCROKER考虑<代码> 045 <代码>。如果我理解正确,ROT5将产生
590
,在这种情况下,将重复
0
5
。我的一个条件是,结果字符串中不会出现原始字符串中的任何数字。醉酒不一定是获得良好声誉和赞赏的好方法。Hic.@HighPerformanceMark万圣节快乐。谢谢回答。你是说每个3位数的字符串都有一个不同的k吗?我不反对从你的证明中学习,尽管这不是必须的。@。