![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Let's keep talking
Форумчанин Подтвердите свой е-майл
Регистрация: 02.07.2007
Сообщений: 217
|
![]()
Всем доброго времени суток! Вообщем у меня тут проблемы. Решил написать прогу, которая генерирует целое число в диапозоне 1-100, причём 100 раз и без повторов. Я сделал такой алгоритм, но он у меня грамоздским получился(основан на цикле for). Поэтому хочу попросить, может кто напишет пример такого приложеия, но чтоб он был очень компактный...))
заранее спасибо.
Лучше С++, чем ++С...
![]() |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 29
|
![]()
Вот вам процедура, которая генерирует псевдослучайные числа до 100, а там уже разберитесь, чтоб не было повторов
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Let's keep talking
Форумчанин Подтвердите свой е-майл
Регистрация: 02.07.2007
Сообщений: 217
|
![]()
А как организовать проверку(способ с циклом исключается)?
Лучше С++, чем ++С...
![]() |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Проще всего такие вещи делаются с массивом:
1. Задаем число элементов в массиве ( 100 в данном случае) 2. Заполняем массив числами от 1 до 100 3. генерируем случайное число в в пределах числа элементов массива 4. берем соответствующий элемент массива 5. сдвигаем массив, чтобы выбросить использованный элемент 6. уменьшаем на единицу число элементов массива и возвращаемся к п.3. Без цикла обойтись всё равно трудно, поскольку числа случайные по определению. Можно, конечно, покопаться в математике (что-то такое было с лотерейными числами), но стоит ли для простого случая? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 29
|
![]()
B_N все граммотно растолковал, нечего добавить )
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 25.09.2007
Сообщений: 189
|
![]()
>> сдвигаем массив, чтобы выбросить использованный элемент
знаешь, сколько нужно процессорного времени на это? лучше std::list |
![]() |
![]() |
![]() |
#7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.09.2007
Сообщений: 189
|
![]()
http://www.gamedev.ru/articles/?id=70103
этот какая разница, чем его двигают, все равно долго хотя, если элементов всего 100 и не надо эту выборку часто повторять, то разница не особо заметна |
![]() |
![]() |
![]() |
#9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
2 Alek86
Милейший, не нужно так явно демонстрировать свою безграмотность. Я знаю прекрасно, что такое списки и еще знаю то, что написано в любой детской книжке - что доступ к произвольному элементу спика напрямую невозможен. "все равно долго" как Вы выразились - это, в данном случае, 100 инструкций MOVSD со средней длиной аргумента - 50 двойных слов, даже говорить смешно, как это долго. |
![]() |
![]() |
![]() |
#10 | |
Great Code Monkey
Форумчанин
Регистрация: 09.08.2007
Сообщений: 533
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Просто интерестно... | Ніжний Диявол | Свободное общение | 5 | 14.07.2008 07:41 |
Просто, но справиться не могу. | Небесный | Общие вопросы Delphi | 1 | 05.05.2008 11:32 |
Просто прошу HELP..... | stalker | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 13.02.2007 20:23 |
просто сныкать... | Аlex | Win Api | 2 | 18.11.2006 04:49 |