|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.02.2008, 16:51 | #1 |
Let's keep talking
Форумчанин Подтвердите свой е-майл
Регистрация: 02.07.2007
Сообщений: 217
|
Просто алгоритм:)
Всем доброго времени суток! Вообщем у меня тут проблемы. Решил написать прогу, которая генерирует целое число в диапозоне 1-100, причём 100 раз и без повторов. Я сделал такой алгоритм, но он у меня грамоздским получился(основан на цикле for). Поэтому хочу попросить, может кто напишет пример такого приложеия, но чтоб он был очень компактный...))
заранее спасибо.
Лучше С++, чем ++С...
|
09.02.2008, 17:43 | #2 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 29
|
Вот вам процедура, которая генерирует псевдослучайные числа до 100, а там уже разберитесь, чтоб не было повторов
Код:
|
09.02.2008, 18:00 | #3 |
Let's keep talking
Форумчанин Подтвердите свой е-майл
Регистрация: 02.07.2007
Сообщений: 217
|
А как организовать проверку(способ с циклом исключается)?
Лучше С++, чем ++С...
|
09.02.2008, 18:03 | #4 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Проще всего такие вещи делаются с массивом:
1. Задаем число элементов в массиве ( 100 в данном случае) 2. Заполняем массив числами от 1 до 100 3. генерируем случайное число в в пределах числа элементов массива 4. берем соответствующий элемент массива 5. сдвигаем массив, чтобы выбросить использованный элемент 6. уменьшаем на единицу число элементов массива и возвращаемся к п.3. Без цикла обойтись всё равно трудно, поскольку числа случайные по определению. Можно, конечно, покопаться в математике (что-то такое было с лотерейными числами), но стоит ли для простого случая? |
09.02.2008, 18:07 | #5 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 29
|
B_N все граммотно растолковал, нечего добавить )
|
09.02.2008, 18:08 | #6 |
Форумчанин
Регистрация: 25.09.2007
Сообщений: 189
|
>> сдвигаем массив, чтобы выбросить использованный элемент
знаешь, сколько нужно процессорного времени на это? лучше std::list |
09.02.2008, 18:12 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
|
09.02.2008, 18:17 | #8 |
Форумчанин
Регистрация: 25.09.2007
Сообщений: 189
|
http://www.gamedev.ru/articles/?id=70103
этот какая разница, чем его двигают, все равно долго хотя, если элементов всего 100 и не надо эту выборку часто повторять, то разница не особо заметна |
09.02.2008, 18:26 | #9 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
2 Alek86
Милейший, не нужно так явно демонстрировать свою безграмотность. Я знаю прекрасно, что такое списки и еще знаю то, что написано в любой детской книжке - что доступ к произвольному элементу спика напрямую невозможен. "все равно долго" как Вы выразились - это, в данном случае, 100 инструкций MOVSD со средней длиной аргумента - 50 двойных слов, даже говорить смешно, как это долго. |
09.02.2008, 19:39 | #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 |