Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Математический эксперимент, с использованием рандома 
V
    Опции темы
Metalex
Дата 17.3.2009, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



В общем целью было проверить, действительно ли при больших кол-вах экспериментов с подкиданием монеты, количества выпаданий герба и числа особо не отличаются и стремятся к вероятности 0.5
Кидаем 1000 раз. Почему то постоянно один и тот же результат. Почему?

Код
Program PerevirkaMatematuchnoiTeorii;
Var k,k1,k2:word; i:integer;
Begin
k1:=0; k2:=0;
for i:=1 to 1000 do
begin
k:=random(2);
if k=0 then k1:=k1+1;
end;
k2:=1000-k1;
writeln ('Випало ',k1,' разів число і ',k2,' разів герб');
readln;
end.


Ноль - это число (решка), единица - герб (орел).


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
THandle
Дата 17.3.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: нет
Всего: 372



Metalex, randomize в начале вызови... 
PM   Вверх
Bobrina
Дата 17.3.2009, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 26.1.2009
Где: Москва

Репутация: нет
Всего: нет



Код

Program Money;
var a,a1,b,i:Integer;
Begin
Randomize;
For i:=1 to 1000 do
begin
a:=Random(2);
if a=0 then a1:=a1+1;
end;
WriteLn('Vipalo reshek:',a1);
ReadLn;
End.

Выпадает по 509-579, пробовал раз 20.

Добавлено через 52 секунды
А без randomize, Random(2) выдаёт всегда 0.
PM MAIL ICQ   Вверх
AXOXC
Дата 17.3.2009, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



Вобщем попробуй просто повыводить числа без подключения "Randomize" тама дается "0 0 1 2.." причем всегда

Библиотека Randomize нужна чтобы присвайвалось значение зависящие от аппаратного времени в миллисикундах если неошибаюсь тобиш по строгому алгоритму) При подкидование монетки шанс выпадаения зависит от множества факторов (теория вероятности) и математически считается всетаки довольно сложно:(
PM MAIL ICQ   Вверх
Metalex
Дата 17.3.2009, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Вот надо же smile пропустил randomize. Бывает) Всем спс.

Просто мы на уроке поспорили с училкой, что из 1000 раз число может выпасть 300. Она утверждала, что нет - мы, что может. Теперь я понял, что не может. Но ведь теоретически то может?


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
volvo877
Дата 17.3.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(AXOXC @  17.3.2009,  20:38 Найти цитируемый пост)
тама дается "0 0 1 2.." причем всегда
"Тама" 2 вообще никак не присутствует, потому как явно указано: от 0 до 2 (НЕ включая 2)...


Цитата(AXOXC @  17.3.2009,  20:38 Найти цитируемый пост)
Библиотека Randomize нужна чтобы присвайвалось значение зависящие от аппаратного времени в миллисикундах
Во-первых, не библиотека, а процедура. А во-вторых, нужна она только для начальной инициализации ГПСЧ, и ни для чего больше. Если не использовать Randomize, то при нескольких подряд запусках одной и той же программы будешь получать одинаковые результаты. Удобно для отладки, но неприменимо для эксперимента.

Цитата(Metalex @  17.3.2009,  21:11 Найти цитируемый пост)
Но ведь теоретически то может? 
Теоретически - не может. Может только практически. Можно и при 10 подбрасываниях монеты получить 10 "орлов" (практически), хотя с точки зрения теории вероятностей это очень маловероятное событие (для разминки - можешь попробовать посчитать его вероятность smile ).

PM MAIL   Вверх
Kbl4AH
Дата 17.3.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: нет
Всего: 15



Цитата(volvo877 @  17.3.2009,  22:22 Найти цитируемый пост)
Теоретически - не может. Может только практически.

противоречиво

Добавлено @ 23:57
Цитата(Metalex @  17.3.2009,  22:11 Найти цитируемый пост)
Просто мы на уроке поспорили с училкой, что из 1000 раз число может выпасть 300.

может с вероятностью 30 % smile

Добавлено @ 00:02
ЗЫ. Вроде рандомизатор не является объективным подтверждением тервера...
volvo877, уточни, пожалуйста, насчет рандомизатора в программировании...
Насколько мне помнится, то он - псевдослучайный (то есть не идеальная случайность, а какая-то зависимость)...
Правильно или нет? А в реальной жизни решка без напрягов может выпасть несколько раз подряд...
Имхо, эта прога не подтверждение в данном споре... 

Это сообщение отредактировал(а) Kbl4AH - 18.3.2009, 00:07
PM MAIL ICQ   Вверх
AXOXC
Дата 18.3.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



Цитата(volvo877 @  17.3.2009,  22:22 Найти цитируемый пост)
"Тама" 2 вообще никак не присутствует, потому как явно указано: от 0 до 2 (НЕ включая 2)...


"тама" имелось в виду что если мы будим выполнять подряд несколько присваиванфий без randomize


//for i:=1 to n do a[i]:=random(maxlongint);

то при каждом запуске программы будем получать одинаковые массивы типа {0,0,1,2..}

в данном случае "random(2)" при каждом запуске получаем "0" т.к. значения видимо округляюца:(

Прошу прощения за неточность а придыдущем посте)

P. C. Одно из условий получения идиального рандома если неошибаюсь чтобы "количество любых значений полученых в ходе эксперимента было примерно равно" В паскаль это выполняется Например можно написать программу которая присваевает переменным масива значения от 1 до 5 и на каждом шаге выдает количество единиц двоек троек и пятерок) Нащет монет: можно попробывать найти условие/копилятор с неидельным рандомом при котором будет выдавать значения например 300/700 и т. д.



PM MAIL ICQ   Вверх
Kbl4AH
Дата 18.3.2009, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: нет
Всего: 15



Цитата(AXOXC @  18.3.2009,  13:44 Найти цитируемый пост)
Одно из условий получения идиального рандома если неошибаюсь чтобы "количество любых значений полученых в ходе эксперимента было примерно равно"

Но выбор нового вероятного значения в тервере (в реальном мире) не должен зависеть от предыдущего значения... 
А в рандомизаторе - зависит, чтобы выбранные значения были максимально различными...
PM MAIL ICQ   Вверх
AXOXC
Дата 18.3.2009, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



Хм есть предложение а если присваевоемое значение будет зависеть от реальной случайности(например от человека сидящего у компьютера)

например

Пользователь в ходе программы нажымает клавишу 10 раз и значение переменной зависит от пайзы между нажатиями в милисекундах (четное-1 нечетное-0)
К сожалению не могу на данный момент реализовать т. к. не знаю как заставить паскаль работать со временем(
PM MAIL ICQ   Вверх
petru4o
Дата 18.3.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 17.3.2009
Где: Донецк,Украина

Репутация: нет
Всего: нет



AXOXC, оператор delay(время в миллисекундах)
PM MAIL WWW ICQ GTalk   Вверх
AXOXC
Дата 18.3.2009, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



Цитата(petru4o @  18.3.2009,  16:47 Найти цитируемый пост)
AXOXC, оператор delay(время в миллисекундах) 


Ето задержка в выполнение программы.

PM MAIL ICQ   Вверх
Metalex
Дата 18.3.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Цитата(Kbl4AH @ 17.3.2009,  23:53)
Имхо, эта прога не подтверждение в данном споре...

А как же проверить? Я же не буду подбрасывать 1000 раз smile Хотя один хлопец уже 300 раз бросил)


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
Kbl4AH
Дата 18.3.2009, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: нет
Всего: 15



Цитата(Metalex @  18.3.2009,  18:41 Найти цитируемый пост)
А как же проверить? Я же не буду подбрасывать 1000 раз  Хотя один хлопец уже 300 раз бросил)

блин, вы че... вероятность того, что орел будет 300 раз из тысячи точно такая же как что орел выпадет 3 раза из десяти... я 3 раза по 10 раз подбросил, на третий раз орел 3 раза только выпал... вот собственно и все... если училка сильно лезет в лупу, то возьми учебник по тер. веру, посмотри формулу, сделай несложный расчет и ткни училке...

PM MAIL ICQ   Вверх
Metalex
Дата 19.3.2009, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Не в училке дело)



--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
petru4o
Дата 19.3.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 17.3.2009
Где: Донецк,Украина

Репутация: нет
Всего: нет



AXOXC, а тебе что надо? ты от этого плясать будешь.
PM MAIL WWW ICQ GTalk   Вверх
AXOXC
Дата 20.3.2009, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



Цитата(petru4o @  19.3.2009,  17:29 Найти цитируемый пост)
AXOXC, а тебе что надо? ты от этого плясать будешь. 

ээээ как?

PM MAIL ICQ   Вверх
petru4o
Дата 20.3.2009, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 26
Регистрация: 17.3.2009
Где: Донецк,Украина

Репутация: нет
Всего: нет



AXOXC, это так,что ты от этого оператора и будешь работать с временем.на сколько знаю,другого метода работы с временем в паскале и нет.
PM MAIL WWW ICQ GTalk   Вверх
AXOXC
Дата 21.3.2009, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 17.3.2009

Репутация: нет
Всего: нет



хм задача поймать время между нажатиями клавиш пользователями (поймать "извне" какое либо значение) как нам тут delay поможет?
PM MAIL ICQ   Вверх
volvo877
Дата 21.3.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(petru4o @  20.3.2009,  15:20 Найти цитируемый пост)
на сколько знаю,другого метода работы с временем в паскале и нет. 
Это - твои личные проблемы... Иди и читай доки, если чего-то не знаешь. В Паскале много чего есть, что тебе даже и не снилось...

Цитата(AXOXC @  21.3.2009,  11:45 Найти цитируемый пост)
как нам тут delay поможет? 
Это не тема данного топика. Если интересно - создай новый, или ХОТЯ БЫ посмотри текущую страницу раздела - не далее как 18-го числа вопрос о работе со временем задавался. 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0960 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.