Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет yigal_s ([info]yigal_s)
@ 2010-10-16 15:52:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
теорвер + рекурсия в цикле
На днях гонял код вроде следующего
void f()
{
    for(;;)
       if(rand()<p)
           f();
       else
           break;
}


Тривиальная, в общем, штучка, но ведет себя забавно.

При вероятности p>1/2 с ненулевой вероятностью последовательность вызовов становится актуально-бесконечной, и это при том, что матожидание длины каждого цикла конечно, и конечно матожидание глубины каждой линейной цепочки рекурсии.

Интуиция cтупила. Первоначально я был уверен, что цепочка вызовов будет всегда конечной, но уже при p=1/2 матожидание количества вызовов становится бесконечным, ну а далее бесконечной становится, с определенной вероятностью, и реализация.

Кстати, посчитал матожидание общего количества вызовов при заданном p<1/2. Как строго-формально считать такую разветвляющуюся хрень, вообще себе не представляю, но нестрого решается довольно просто.


(Добавить комментарий)


[info]alisa_lebovski@lj
2010-10-16 17:13 (ссылка)
Это простая задача на теорию ветвящихся процессов Гальтона-Ватсона.
Каждая функция порождает геометрически распределенное число новых функций минус 1.
Вероятность бесконечной реализации получается равной 2-(1/p) при p>1/2.

(Ответить) (Ветвь дискуссии)


[info]panchul@lj
2010-10-16 19:43 (ссылка)
Jesus, you ARE Hot!!!!

(Ответить) (Уровень выше)