IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> random(49) +1, не понятное +1
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Александр

Репутация: -  0  +


Добрый 21 век! smile.gif

program sportlotto;

type num=1..49;
var i:1..6;loto:num;

begin randomize;
for i:=1to 6do
begin
loto:=random(49)+1;
writeln('Nr.',i:2,loto:6)
end
end.

В общем эта программа имеет недостаток в том, что не все числа могут выпасть разными. Но не это мне важно!
Мне важно узнать о функции "random". Мне не понятно почему "+1"? Для чего "+1"?
P.S. Программа из университетского учебника.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
это ж потенциально бесконечный алгоритм. Кто его знает, как рандом себя поведёт.
Не надо вырывать строки из программы. Там было написано вот это:
  for i := 1 to 6 do { <--- Цикл для 6-ти значений !!! }
begin
repeat
X := random(49) + 1;
until not (X in s);

. Где потенциальная бесконечность? Чуть дольше будет работать - это возможно. Но бесконечно - не будет этого никогда. Если б я написал for i := 1 to 50 do - вот тогда было бы бесконечно.

Цитата
не знаю, стоит ли доверять таким вещам.
Равно как и любым другим вещам. Не нравится - не пользуйся. Мне нравится - я пользуюсь. Ни разу бесконечный цикл не наблюдал от этой конструкции. Если бы стояла задача написать супер-оптимизированную программу под жесткий RealTime, естественно, писАлось бы по-другому. Но для учебной программы - почему нет? Причем я сразу написал:
Цитата
По мне - так вот это проще будет
, никому ничего не навязывал и не собираюсь. У каждого своя голова на плечах.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Студент*21в.   random(49) +1   9.04.2010 12:44
TarasBer   Потому что рандом(н) даёт число от 0 до н-1   9.04.2010 13:13
Студент*21в.   Потому что рандом(н) даёт число от 0 до н-1 Спас…   10.04.2010 13:26
sheka   А мне очень нравится пример из DRKB. Правда он зде…   10.04.2010 4:37
Lapp   Да, и еще один важный момент (кстати, в тему)).. …   10.04.2010 14:22
volvo   По мне - так вот это проще будет: var s: set of …   10.04.2010 5:16
Студент*21в.   По мне - так вот это проще будет: [code=pas]var …   10.04.2010 15:38
Lapp   Мне тоже очень нравится пример из DRKB, который Sh…   10.04.2010 11:13
Lapp   на большем диапазоне эффективность второго метода …   10.04.2010 14:49
sheka   Я так тоже делал, пока не нашел Реализацию через …   10.04.2010 15:29
sheka   Ого, как намудрили)   10.04.2010 15:40
TarasBer   Дык это ж потенциально бесконечный алгоритм. Кто…   12.04.2010 13:50
Archon   Для твоего примера это может выглядеть так: [cod…   12.04.2010 13:54
volvo   Не надо вырывать строки из программы. Там было нап…   12.04.2010 17:15
TarasBer   > Где потенциальная бесконечность? Где гаранти…   12.04.2010 17:28
Client   Сори что вмешиваюсь, НО... TarasBer, а что ты не п…   12.04.2010 18:31
TarasBer   > TarasBer, а что ты не привел код, которому до…   12.04.2010 19:01
volvo   Я про компьютерный рандом ничего не знаю и знать н…   12.04.2010 19:15
TarasBer   > Я про компьютерный рандом ничего не знаю и зн…   12.04.2010 19:33


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 10.09.2025 19:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name