ile_eli: (Default)
[personal profile] ile_eli
Дочка загадала загадку:
имеется массив длины n с целыми числами от 1 до n-1. Разумеется, хотя бы одно число появляется дважды (а может, вообще все одинаковые - это уж как повезет). Нужно найти хотя бы одно повторяющееся число за время порядка n, используя память порядка 1.
Решение (некрасивое и нечестное): суммируем 2^A(i). На каждом шаге перед тем, как возвести 2 в степень следующего числа и прибавить к результату, смотрим, какой остаток суммы при делении на 2^(A(i)+1). Если он больше или равен 2^A(i), значит оно уже было.
Жульничество в том, что вместо того чтоб добавлять ячейки памяти, мы одну раздуваем сколько вздумается.

А морали никакой, никакой, никакой, (с)
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

ile_eli: (Default)
ile_eli

March 2026

S M T W T F S
1234 567
891011121314
15161718192021
22232425262728
293031    

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 10th, 2026 05:52 am
Powered by Dreamwidth Studios