|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrew Nikitin 2:5020/400 29 Oct 2002 09:24:33 To : Anton Kovalenko Subject : Re: наибольший нечётный множитель -------------------------------------------------------------------------------- "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-цы двоичного представления которого соответствуют элементам сочетания. Hадо найти последовательность из семи побитовых операций (Кнут называет (упрощённо) побитовыми операциями всё то что называется целочисленными операторами -- типа +, & и т.д.-- в C) которые получают из него лексикографически следующее сочетание. Hапример 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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/15646976233cb.html, оценка из 5, голосов 10
|