Re: наибольший нечётный множитель

From
Andrew Nikitin ()
To
Anton Kovalenko
Date
2002-10-29T08:24:33Z
Area
RU.ALGORITHMS
From: "Andrew Nikitin" <nsg21@fuse.net>


"Anton Kovalenko" <a_kovalenko@fromru.com> wrote in message
news:87y98irora.fsf@lenin.doma.net...
> >>>>> Andrew Nikitin writes:
>
> Если имеется ввиду
>
> int god(int x)
> {
> return x/(x&-x);
> }
>
> то условие не совсем корректно (не учтены x<0).

Угу. Имеется ввиду именно это. А что касается x<0, то в исходном постинге я
оговаривал что x положительно, но забыл скопировать. Прошу прощения.
(чтобы не исключать отрицательных чисел, то можно просить наибольший по
модулю нечётный множитель)

В общем вот вторая серия на ту же тему. Саму задачу вычитал у Кнута, там где
его прёт про сочетания (глава 7.2.1.3)

Сочетание (которое C(m,n)) преставлено в виде целого числа, 1-цы двоичного
представления которого соответствуют элементам сочетания.
Надо найти последовательность из семи побитовых операций (Кнут называет
(упрощённо) побитовыми операциями всё то что называется целочисленными
операторами -- типа +, & и т.д.-- в C) которые получают из него
лексикографически следующее сочетание.
Например
00111 ->  01011 -> 01101 -> 01110 -> 10011 -> 10101 ->
10110->11001->11010->11100

Ответа нет (точнее, он находится в ещё неопубликованной части), но мне
удалось найти решение в 8 операций.
Кто-нибудь может найти решение в 7 операций?

--
nsg






--- ifmail v.2.15dev5
 * Origin: Posted via Supernews, http://www.supernews.com (2:5020/400)