and*_*w.z 5 algorithm bijection
这是一个问题,我正在尝试为其创建最佳解决方案.我有一组有限的非负整数,范围为[0 ... N].我需要能够将此集合中的每个数字表示为字符串,并能够将此字符串向后转换为原始数字.所以这应该是一个双射函数.
其他要求是:
对于p.1和p.2,显而易见的解决方案是使用类似Base64(或任何BaseXXX以适合所有值)的表示法.但是我们能否以最小的额外努力适应p.3?常识告诉我,我还需要一个双射"String < - > String"函数用于BaseXXX值.有什么建议?或者可能有比BaseXXX更好的东西来满足所有3个要求?
那么您需要一个字符串来混淆原始数字,但允许在 str(K) 已知时确定 str(K+1) 吗?
干脆就干吧f(x) = (x + a).toString(),a秘密在哪里?然后外部用户无法确定x,f(x)但他们可以确信,如果他们有一个字符串“1234”,例如,对于未知数,x则“1235”映射到x+1。