# 对于任意一个 0~999999 之间的数字 num ,通过 func 转换得到一个 result
result = func(num)
# result 是由大写字母和数字 0-9 组成的字符串,长度固定为 8
# 如:func(1) = "A6FU1Y5F", func(2) = "YFS98TT2"
# 需要
# 1. 确保不同的输入 num 对应不同的输出 result ,
# 2. 要不容易通过已知的几个(num, result)映射找出规律,
# 3. 要能通过 result 逆向找回 num ,
# 4. 不能用写死的 dict 去做映射
我开始想的是,把数字前面补 0 ,补成 8 位 00000000~00999999
再做一个两位数字 00~99 对应两位字符串的一一映射{"00": "0A", "01": "0B", …}
然后每两位去拼出 result ,但是这样就很容易被找到规律,而且要写死一个很长的 dict ,很不优雅
不知道大佬们有没有什么好的思路?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.