我正在寻找一种解决方案,将给定范围内的所有数字转换为相同范围内的另一个数字,然后将该数字转换回来。
更具体,假设我有数字1..100
。
将所有数字转换为同一范围内的另一个数字的最简单方法是使用:b = 99 -a;
稍后使用a = 99 - b;
获取原始数据。
我的问题是我想模拟一些随机性。
我想在PHP中实现它,但编码语言并不重要。
WHY吗
你可能会说为什么?好问题:)
我正在基于id
- s生成一些易于阅读的短代码字符串,并且因为id逐个递增,所以我的连续短代码太相似了。
后来我需要“解码”短代码,以获得id。
我的算法现在正在做的是:
0000001 -> ababac
,0000002 -> ababad
,0000003 -> ababaf
等
后
ababac -> 0000001
,ababad -> 0000002
,ababaf -> 0000003
等
所以在我实际生成短代码之前,我想尽可能“随机化”这个数字。
答案 0 :(得分:1)
选项1: 你为什么不拥有转换数据库?即每条记录都有一个“真实”ID,一个“随机md5”字符串或其他东西
选项2: 使用彩虹表 - 甚至可能是MD5查找表,范围为0 - 10,000或其他。然后只做一个哈希表查找
答案 1 :(得分:0)
最后,我在数学论坛上找到了基于模块运算符的解决方案。 解决方案可以在这里找到: