Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рандом 
:(
    Опции темы
cupper
Дата 25.1.2010, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

Предположим, что нам надо выводить 0 и 1 с вероятностью 50%. В нашем распоряжении имеется процедура Biased_Random, которая с вероятностью р выдает 0, и с вероятностью 1 — р — число 1; значение р нам неизвестно. Сформулируйте алгоритм, использующий в качестве подпрограммы процедуру Biased_Random и возвращающий равномерно распределенные числа 0 и 1, т.е. вероятность вывода каждого из них равна 50%. Чему равно математическое ожидание времени работы такой процедуры и как оно зависит от р?

Что то я даже понятия не имею как это сделать, есть у кого идеи ? про матиматическое ожтидание можно пока забыть.
PM MAIL   Вверх
Loner
Дата 25.1.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если я правильно понял описание, то
Код

int Unit_Random()
{
    return Biased_Random(0.5);
}

разве нет?

Добавлено через 10 минут и 20 секунд
а, нет, понял
PM ICQ   Вверх
comcon1
Дата 25.1.2010, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Идея такая: 

int a,b;
do {
   a = Biased_Random();
   b = !Biased_Random();
} while (a != b);
return a;

Почему-то мне кажется, что будет равномерно.


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


Новичок



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

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



нет, не правда.
будет 0 с вероятностью p

Добавлено через 1 минуту и 20 секунд
серия экспериментов будет заканчиваться на 10 с вероятностью p

Добавлено через 4 минуты и 31 секунду
все-таки, ты прав. Я тупанул smile
PM ICQ   Вверх
Peter
Дата 25.1.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(comcon1 @  25.1.2010,  14:02 Найти цитируемый пост)
Почему-то мне кажется

Несерьезно.


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
cupper
Дата 25.1.2010, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(comcon1 @ 25.1.2010,  14:02)
Идея такая: 

int a,b;
do {
   a = Biased_Random();
   b = !Biased_Random();
} while (a != b);
return a;

Почему-то мне кажется, что будет равномерно.

незнаю верно или нет но это можно проверить.
Сгенерировать этой функцией 100000 значений и посчитать соотношение нулей и единиц в ней. Домой приду проверю.

ТУПЛЮ, это видоизмененое то что мне уже предлогали, в этой случае вывд будет типа 0 1 0 1 0 1 0 1 это не с вероятностью 50% это просто чероедование :(
Понимаю, это первое что приходит в голову )) мне тоже

Это сообщение отредактировал(а) cupper - 25.1.2010, 15:06
PM MAIL   Вверх
Peter
Дата 25.1.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подсказка. Рассмотри случайную величину [Biased_Random() + 1 - Biased_Random()]


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
comcon1
Дата 25.1.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(cupper @  25.1.2010,  15:02 Найти цитируемый пост)
ТУПЛЮ, это видоизмененое то что мне уже предлогали, в этой случае вывд будет типа 0 1 0 1 0 1 0 1 это не с вероятностью 50% это просто чероедование 


нет, это не чередование. Вероятность выпадения 0 - p, вероятность выпадения 1 - (1-p). Значит вероятность того что выпадет 01 - p(1-p). тогда выведет 0. 

00 - p^2 - отсекаем
10 - p(1-p) - принимаем нулем
01 - p(1-p) - принимаем единицей
11 - p^2 - отсекаем

Все верно. Просто возможно, есть вариант поприятнее.


--------------------
PM MAIL   Вверх
Peter
Дата 25.1.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Правильно. Или
00 - p^2 - принимаем нулем
10 - p(1-p) - отсекаем
01 - p(1-p) - отсекаем
11 - p^2 - принимаем единицей


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
cupper
Дата 25.1.2010, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ды вы правы. Так оно и есть, сначала не понял всей глубины мысли, спс smile
PM MAIL   Вверх
Peter
Дата 25.1.2010, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



comcon1 ошибся и я тоже. Читать так:
00 - p^2 - отсекаем
10 - p(1-p) - принимаем нулем
01 - p(1-p) - принимаем единицей
11 - (1-p)^2 - отсекаем


--------------------
всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23).
PM MAIL WWW   Вверх
esperanto
Дата 29.1.2010, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Peter @ 25.1.2010,  20:13)
comcon1 ошибся и я тоже. Читать так:
00 - p^2 - отсекаем
10 - p(1-p) - принимаем нулем
01 - p(1-p) - принимаем единицей
11 - (1-p)^2 - отсекаем

Время работы вашего алгоритма не ограничего.


Среднее время работы равно 1\(2P(1-p))
--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET
PM MAIL   Вверх
comcon1
Дата 29.1.2010, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я не ошибся, я отсек то, что нужно.
"11 - p^2 - отсекаем" - просто эту строчку неправильно написал

esperanto, ну извини, да, если p = одна миллионная процента, то работать будет дохрена. У тебя есть идеи быстрее? Мне интуитивно кажется, что должно быть что-то быстрее.


--------------------
PM MAIL   Вверх
esperanto
Дата 29.1.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(comcon1 @ 29.1.2010,  12:45)
Я не ошибся, я отсек то, что нужно.
"11 - p^2 - отсекаем" - просто эту строчку неправильно написал

esperanto, ну извини, да, если p = одна миллионная процента, то работать будет дохрена. У тебя есть идеи быстрее? Мне интуитивно кажется, что должно быть что-то быстрее.

Есть значения р, для которых возможны алгоритмы останавливающиеся через конечно время.

Есть значения для которых нет алгоритма выдающего ровно 0.5 0.5 через конечное время.

Есть алгоритмы для любого р, останавливающие за конечное время но возвращающие 0.5 -+эпсилон
--------------------
B.Sc ->M.Sc.->Microsoft SDE-> (Ph.D. student + Intel SDE + psyсhology B.A) - > Skype SDET
PM MAIL   Вверх
comcon1
Дата 30.1.2010, 04:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



esperanto,  было бы прикольно, если бы ты что-то написал конкретное, хотя бы в общих чертах. Потому что это интересно.


--------------------
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


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

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


 




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


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

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