请考虑以下int;从现有int生成随机int
int start = 287729472784;
从这个INT,我需要创建新的int是只有三个长度数字,我可以使用的任何值从0到9。
但是,为了创建新的int,我不能使用任何形式的现有随机数生成器。
我想知道是否有可能使用的组合模块化,XOR,和,位移位 - 操作以某种方式减少的总数。如xor与之前的最后一个数字,但我不知道这是甚至可能的。
基本上我需要从起始int创建一个三位长的int,理想情况下将起始int减少到三位数的长度。
我希望这是有道理的,我会很感激任何输入。
谢谢
1.在Java中这不是一个有效的'int' - 它太大了。 2.你的用例是什么?你需要为每个传入的较大整数生成一个不同的三位数int吗?如果是这样,放弃你的任务 - 这是不可能的(见[Pigeonhole原则](http://en.wikipedia.org/wiki/Pigeonhole_principle))。如果不是,一个简单的模数运算(如Dirk所建议的)将很好地完成这项工作。 – 2012-02-19 21:24:57
'public string intRand(int input){return“004”; }' – zellio 2012-02-19 21:28:16
那么我实际使用的输入诠释是一个SHA1哈希转换成一个BigInteger并表示为一个字符串。 将散列放入一个字节[],然后将这些字节放入BigInteger中。 我只是想我会从一个更小的例子开始:) – Tony 2012-02-19 21:29:10