теорвер + рекурсия в цикле На днях гонял код вроде следующего
void f()
{
for(;;)
if(rand()<p)
f();
else
break;
}
Тривиальная, в общем, штучка, но ведет себя забавно.
При вероятности p>1/2 с ненулевой вероятностью последовательность вызовов становится актуально-бесконечной, и это при том, что матожидание длины каждого цикла конечно, и конечно матожидание глубины каждой линейной цепочки рекурсии.
Интуиция cтупила. Первоначально я был уверен, что цепочка вызовов будет всегда конечной, но уже при p=1/2 матожидание количества вызовов становится бесконечным, ну а далее бесконечной становится, с определенной вероятностью, и реализация.
Кстати, посчитал матожидание общего количества вызовов при заданном p<1/2. Как строго-формально считать такую разветвляющуюся хрень, вообще себе не представляю, но нестрого решается довольно просто.