Надо записать, а то пойду спать и забуду.
Имеется черный ящик, в котором внутри реализована некоторая фиксированная перестановка из N элементов. У ящика можно попросить сгенерировать случайную строку из N бит, с независимыми равновероятными 0 и 1 в каждой позиции, произвести над ней эту свою перестановку, и показать исходную строку и результат.
(
Read more... )
Comments 17
По грубой прикидке около log2(N). Каждый запрос для первой позиции дает ~N/2 кандидатов для его образа, где один настоящий, а остальные случайные. Каждый случайный кандидат появляется с вероятностью ~1/2 и ожидаемо не должен появиться (хотя бы раз) в ~log2(N) раундах. Аналогично для остальных позиций. И это я еще не учёл, что выяснение настоящего образа для одной позиции исключает его из кандидатов для остальных, что ускоряет процесс.
Reply
Интуитивно я бы в формулировке задачи добавил бы "с определенной вероятностью определить перестановку". Ведь задача сведется к покрытию множества случайными подмножествами...
Reply
Другой взгляд. Посмотрим на перестановку как двудольный граф паросочетания с N рёбрами. Изначально у нас нет никакой информации - и любое ребро из N^2 в полном двудольном графе может быть искомым. Каждой обращение к чёрному ящику удаляет каждое лишнее ребро с вероятностью ~1/2. После k обращений у нас остаётся ~(N^2-N)/2^k лишних рёбер, что опять же дает, что k = O(log2(N)) должно хватить.
Reply
Reply
Reply
Что результат для тщательно сконструированных проб и для случайных может быть одинаковым - не верится совсем. Но если это действительно так, то тоже будет парадокс.
Reply
Reply
F(N,k) = sum C(N,i) F(i,k-1) F(n-i,k-1),
где суммирование ведется по i от 0 до N, а C(N,i) - биномиальные коэффициенты.
Граничные условия:
F(0,k)=1
F(1,k)=1
F(N,0)=0, при N>1
Отсюда по индукции следует, что
F(N,k) = prod (1 - i * 1/2^k), для i=0..n-1
Тогда можно получить и матожидание. Одной формулой у меня не получилось, но первые члены такие
2, 10/3, 88/21, 512/105, 5874/1085 ...
Reply
Reply
M(N) = sum (1-F(N,k) ) для k=0..+inf
Тогда компьютер говорит, что
M(1024) = 20.3322776
Т.е. действительно похоже на 2*10+1/3.
Reply
Reply
Leave a comment