日期:2014-05-17  浏览次数:20791 次

数学算法求教!
如何把1~250间的数字转换为1~250间的任意一个数字,且任意数字转换后的数值结果始终唯一。
如:100 始终转换为75,其它数字转换结果始终不为75。

------解决方案--------------------
这个简单

int seed = 1234;
Random r = new Random(seed);
int[] result = Enumerable.Range(1, 250).OrderBy(x => x.NextDouble).ToArray();


------解决方案--------------------
既然是任意一个,不转换应该也是满足要求的吧。
下面是平移的算法,就是100转75的:
a =(a+224)%250+1
下面是75转100的:
a=(a+24)%250+1