![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Пользователь
Регистрация: 05.03.2011
Сообщений: 36
|
![]()
Мне нужно создать линейный массив из 20 целы положительных чисел, при этом нужно, что бы они не повторялись. Суть проблемы в том, что я не могу сделать так, что бы они не повторялись...
Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Получи значение рандома во временную переменную, циклом пройдись по уе заполненным элементам и проверяй, есть ли такое. Если есть, то генерируй снова, иначе плюсуй в массив.
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 05.03.2011
Сообщений: 36
|
![]() |
![]() |
![]() |
![]() |
#4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,899
|
![]()
Не очень хорошее решение. Теоретически (а на больших размерах массива может быть и практически) такой алгоритм бесконечен.
Всегда такая задача делалась через заполнение массива по любому закону в возрастающем порядке (как пример обычное +1) и потом перемешиванием в случайном порядке такого массива. Примерно так, сложность такого алгоритма O(n) Код:
Последний раз редактировалось phomm; 22.01.2012 в 09:04. |
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
phomm, согласен, я тоже часто пользуюсь подобным подходом.
вот только у Вас перемешивание с "изъяном"... цитирую свой пост: Код:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывести линейный массив на экран. | badname47 | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 19.12.2011 15:40 |
C++,линейный список | katerunechka | Помощь студентам | 0 | 08.10.2011 11:38 |
линейный массив, max i min | Славик777 | Помощь студентам | 1 | 20.05.2011 15:46 |
Сформировать линейный массив из отрицательных чисел. | Bikborppp | Помощь студентам | 0 | 28.10.2010 16:28 |