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

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

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

> random(49) +1, не понятное +1
Студент*21в.
сообщение 9.04.2010 8:44
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 12.04.2010 15:15
Сообщение #2


Гость






Цитата
Где гарантия, что рандом не будет каждый раз возвращать одно число, которое уже занято? Компьютерный рандом неидеален, что он может выкинуть - я не знаю.
Я про компьютерный рандом ничего не знаю и знать не хочу. Меня "сферические кони в вакууме" как-то мало интересуют. Паскалевская функция Random возвращает с приблизительно равной вероятностью числа от (начала_интервала) до (конца_интервала-1). Где вероятность того, что рандом будет постоянно возвращать одно и то же число (если только он не вырожден как Random(1)) ? Чему она равна?

Цитата
Гарантируешь?
Гарантирую. Точно с той же уверенностью, с которой ты говоришь, что код МОЖЕТ привести к вечному циклу. Я не говорю "может", я говорю ДА. Вопросы еще будут?

Цитата
Тут же даже рандом неидеален и хз как себя поведёт.
Это твои личные фантазии. Никогда за почти 2 десятка лет Random не вел себя иначе чем так, как он него требовалось. Он ГАРАНТИРОВАННО (могу еще побольше шрифт сделать) возвращает последовательность, распределенную равномерно (это проверялось мной лично неоднократно на выборках любого размера - от минимального до огромного). Это и есть гарантия того, что вечного цикла не будет никогда.

P.S. Ну, а ты можешь с чистой совестью прекратить заниматься программированием. Ибо неидеален Random, неидеальны компиляторы, неидеальны процессоры, в атмосфере много возмущений, вспышки на Солнце. Неровен час, и простейший HelloWorld приведет к ядерной атаке...
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 20.07.2025 10:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"