Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

рандомизация чисел Java

06.05.11 14:03
Re: рандомизация чисел Java
 
Victor! постоялец
Victor!
в ответ Murr 05.05.11 23:23, Последний раз изменено 06.05.11 20:08 (Victor!)
ога, тут бы while, и инкрементить индекс только если выпало трушное число, иначе опять в рандом за новым :)
и алгоритм слабо масштабируем, что если нам нужно не 84 а 84 тыщщи, хранить хистори позиций 84 тыщ чисел? как то накладно
я б организовал бы что-то типа очереди из 10 чисел, и добавлял бы в хвост в случае если данное число отсутствует в очереди
как то так
package example;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Random;
public class random {
private static final int NUM_RANGE = 84;
private static final int NUM_COUNT = 480;
private static final int REPEAT_RANGE = 10;

/**
* @param args
*/
public static void main(String[] args) {
Random random = new Random();
Queue<Integer> queue = new LinkedList<Integer>();
int i = 0;
mainLoop:
while (i < NUM_COUNT) {
int val = random.nextInt(NUM_RANGE) + 1;
for (Integer last : queue) {
if (last.equals(val)) {
continue mainLoop;
}
}
queue.add(val);
if (queue.size() > REPEAT_RANGE) {
queue.remove();
}
System.out.print(val + " ");
i++;
}
}
}


 

Перейти на