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]
Примечание. Эта функция должна беспрепятственно работать и для других диапазонов цифр (например, 3-значных диапазона, охватывающих 101 - 999 и четырехзначных диапазонов, охватывающих 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;
}