Clamp
Lost in space
offline
Опыт:
71,158Активность: |
умный рандом
помнил, да забыл... Нужен алгоритм, который заполнит случайным образом массив величины N числами от 1 до N так, чтобы ни одно число не повторилось. |
03.05.2011, 07:39 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hellfim
Новичок
offline
Опыт:
79,700Активность: |
|
03.05.2011, 11:40 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
самый лёгкий способ
на jass так примерно:
Hanabishi добавил: естественно массив a будет содержать неповторяющиеся значения real от 1 до 100 с integer нужно быть осторожнее, ибо если диапазон рандома будет меньше длинны n, то цикл будет вечен |
03.05.2011, 18:49 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
Hellfim:
Ваш копетан какой то странный, ведь можно сверять заполняемую ячейку с уже заполненными ячейками этого самого массива, без применения второго, тем самым экономя память и строки кода Clamp добавил:
Clamp добавил: вроде должно работать, проверить сейчас не могу с телефона, поэтому форматирование корявое |
03.05.2011, 21:47 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J64_
offline
Опыт:
4,724Активность: |
массив B - изначально 0,1,2,3...MAX надеюсь все верно,ато 4 часа ночи... акацо скепил ТТ Отредактировано AdamanTX, 03.05.2011 в 22:14. |
03.05.2011, 22:03 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DotaMaster666
Silenced by GadenbIsh
offline
Опыт:
1,259Активность: |
Нубский вариант, я все-таки поищу нормальный. |
03.05.2011, 23:05 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
совершенно необязательно прекешировать результаты...
выбираете случайный слот и ставите переадресацию на последний из возможных, уменьшаете возможный слот на 1. при выборке такого же числа вы получите данные переадресации. |
04.05.2011, 10:27 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Clamp
Lost in space
offline
Опыт:
71,158Активность: |
второй массив сожрет больше памяти в процессе, хотя на инициализацию потратит существенно меньше.
Плюс можно извращаться с исключением из диапазона рандома уже выпавших чисел путем введения второго массива целых чисел, что позволит сократить мгновенные затраты памяти, зато увеличит постоянно затрачиваемую память |
05.05.2011, 08:21 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
Хватить обращать внимание на килобайты оперативки. [+] замечание от Hanabishi: 1.1 (ненормативная лексика)
Отредактировано Hanabishi, 05.05.2011 в 13:24. |
05.05.2011, 08:46 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|