spamsink: (Default)
[personal profile] spamsink
Пункт 1, предварительный:
Что напечатает эта программа:
#include <stdio.h>
#include <stdlib.h>
void foo(int i) {
    int j;
    srand48(i);
    while ((j = drand48() * 22)) {
        putchar(j+64);
    }
    putchar('\n');
}

int main() {
    foo(17594951);
    foo(56010574);
    foo(84979338); /* try 16447603 instead */
    return 0;
}


Пункт 2: Насколько сильно нам повезло? (Придумайте способ выразить везение численно.)

Уточнение

Date: 2017-08-02 09:40 pm (UTC)
From: [personal profile] malobukov
При чём тут теорвер? Программа с вероятностью один печатает одно и то же (три заранее выбранных куска из строго заданной псевдослучайной последовательности).

Например, мы заранее выбрали именно эти три слова, и нужно узнать вероятность получить этот результат изменением только цифр в main()?

Или вероятность получить какую-нибудь осмысленную фразу изменением только цифр в main()?

Или какова вероятность получить идентичный результат с другим псевдослучайным генератором?
Edited (очепятка) Date: 2017-08-02 09:42 pm (UTC)

Re: Уточнение

Date: 2017-08-03 12:12 pm (UTC)
From: [personal profile] malobukov
Числа в main() - не количество проб. Это начальные значения куска псевдослучайной последовательности. Поскольку генератор 48-битный, уникальных последовательностей не больше 248. На самом деле меньше из-за дупликатов. Надо посчитать, насколько меньше?

Date: 2017-08-03 04:16 am (UTC)
vak: (Default)
From: [personal profile] vak
Не, ну так и из числа пи можно симфонию Баха сделать. :)
Page generated Mar. 5th, 2026 11:25 am
Powered by Dreamwidth Studios