日期:2014-05-20  浏览次数:20675 次

帮帮我,俺是新人
有没有一个方法产生2个永远不同的随机数

------解决方案--------------------
要生成几位的随机数?拼接随机数,我觉得这样相同的可能性就要小很多
------解决方案--------------------
你把产生的随机数,加上一个永远自加的数,在开方就行了,比如第一个随机数加1,开方,第二个加2,开方。以此类推,如果你开方的数大于1了,你就把整数去掉就行了
------解决方案--------------------
放到Set不行么?
------解决方案--------------------
有办法!!你定义一个数组a[2]={10,11};
然后产生1或者0;打印出下标为1或者0的那个数,接着去掉那个数,数组减少一;
再随机都不会产生跟第一个相同的数了
------解决方案--------------------
虽然RANDOM产生的是伪随机数
不过用个小技巧就可以产生完全不重复的数~~
很简单,取时间戳附加到RANDOM产生的随机数上~~~

假设 有 int a = random.getInt(100);
可以取当前的时间戳
long b = Calendar.getInstanse().getTime().getTime();

然后你把a和b组合一下,随便是相加还是相乘或者怎么样,你产生的随机数永远是不重复的
------解决方案--------------------

楼上楼上...
取时间的话对位数要求太呆板了
------解决方案--------------------
放在set里面不错啊
------解决方案--------------------
tomkai(我不是苹果)
笨啦...
不一定要用LONG值啊
你可以用SimpleDateFormat取字符串值啊

SimpleDateFormat sdf = new SimpleDateFormat( "HHmmssS ");
高兴怎么取就怎么取嘛...
然后你直接拿STRING处理也行,转成INT处理也行,怎么高兴怎么做