Алгоритм обхода массива
Есть массив на миллион уникальных чисел. Из него рандомно берутся элементы и с каждой следующей итерацией нужно брать рандомно одно из тех чисел, которые до этого не брались. элементы массива удалять нельзя. Как правильно это сделать? Есть ли какой-то алгоритм обхода для такой задачи?
Ну не удаляй.
Просто меняй местами, сокращая количество элементов, из которых делается выборка.
Например, у тебя есть 1 2 3 4
На первом шаге выбираешь из 4-х, скажем, выпало 2.
Меняешь его с последним элементом:
1 4 3 2
А теперь выбираешь из трех.
Пусть выпало 1.
Массив будет
3 4 1 2
Выбираешь из двух...
сделать второй массив, в который кидать использованные, или каждый раз двигать использованный в самый конец массива, а потом сужать диапазон рандома до -2, до -3 итд
Перемешай (алгоритм Фишера-Йетса) и затем просто последовательно выбирай.