請考慮以下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