Как случайным образом выбрать целое число из массива, исключая все предыдущие выборки?

Я пытаюсь заполнить набор ячеек в случайном порядке. У меня он просто проходит больше итераций, чем необходимо, так что все поле заполняется. Я хочу исключить предыдущие выборы, чтобы сделать процесс более быстрым и плавным. Благодарю вас!


person user3043957    schedule 28.11.2013    source источник
comment
Обратите внимание на комментарий в этом ответе @A. Уэбб, тасовка, данная в этом ответе, является предвзятой. Приведенная ссылка на Википедию показывает, как выполнять беспристрастную перетасовку.   -  person chris neilsen    schedule 28.11.2013


Ответы (1)


Я уверен, что у этого есть миллионы ответов. что я объясню вам, что я буду делать. затем вы можете вставить свой код, и если у вас возникнут проблемы, кто-нибудь может вам помочь.

Я бы сделал процедуру, которая случайным образом сортирует ваш массив, как? добавьте в свой массив еще один столбец, в который вы поместите число ramdon, сгенерированное Excel. затем отсортируйте свой массив в соответствии с вашим случайным числом. Я сделаю пример:

Исходный массив:

(ваш столбец int, столбец Rand)

(1,0.3212) (2,0.7423) (3,0.0311) (4,0.03144) (5,0.952)

тогда, если вы закажете его, вы получите что-то вроде этого:

5 2 1 4 3

тогда все, что вам нужно сделать, это вернуть следующий элемент в вашем массиве, и, конечно, они никогда не будут повторяться.

Я думаю, что это очень быстрый способ.

Надеюсь, поможет

person bto.rdz    schedule 28.11.2013
comment
Потрясающий. Ответ всегда намного проще, чем вы ожидаете. Большое спасибо! - person user3043957; 07.12.2013