【发布时间】:2011-07-08 05:27:17
【问题描述】:
We need to generate random numbers within a certain digit range with few restrictions
e.g. For double digit range 11 - 99, the resultant output should not include all like numbers [11,22,33,44,...99] and multiples of 10 [20,30,40....90]
The resultant output should be [12,13,14,15,16,17,18,19,21,23,...98]
注意:此功能也可以无缝地用于其他数字范围(例如,跨越 101 - 999 的 3 位范围和跨越 1001 - 9999 的四位范围)
我们很难识别相似的数字(例如 11、22、33、44、55、66、77、88、99、111、222、333、...、3333 ...)
编辑1:
protected static List<Integer> fetchRandIntegers(int min, int max, int howMany, boolean randomize) {
// We need to reverse minimum, maximum values for negative ranges
if (min > max) {
int tmp = min;
min = max;
max = tmp;
}
List<Integer> allNumbers = new ArrayList<Integer>();
for (int i = min; i <= max; i++) {
allNumbers.add(i);
}
if (randomize) {
...
}
return allNumbers;
}
【问题讨论】:
-
听起来这个人有相同的作业stackoverflow.com/questions/6620840/…
-
@Peter - 我来这里是为了解决我在编码过程中遇到的真正问题。只是看到一些疯狂的cmets很烦人,这与问题无关。我想我只是在浪费时间试图解释。
-
如果你真的阅读这篇文章,你会看到同一个问题有很多答案。我发现人们懒得去阅读那些试图帮助他们的人的答案,这太疯狂了。顺便说一句,我发现其他人会在你提出一个小时内就这样一个独特的问题提出问题,这是一个惊人的巧合。无论如何,我今天已经给出了一次答案,它涵盖了您的全部要求,而不仅仅是其中的一部分,并且不使用循环,因此可能会更快。
-
@peter 也许它是相关的,但很难说,因为它被表述为“帮助我用 gotos 将这个疯狂的 c++ 代码翻译成 java”,这是关于随机数生成的。
-
@Jeff,但数字序列完全相同。 ;)