![]() |
|
|
![]()
|
|
| PILOT |
|
|||
|
производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: нет Всего: 54 |
Задача поиска степени двойки. Как только получается 2^N, то кол-во оставшихся итераций равно N.
Теперь как находим степень двойки: Может быть можно воспользоваться тем, что: N*N - (N-1)*(N-1)=2N-1 -разность квадратов соседних чисел всегда нечетна и тем, что (3N+1)-N =2N+1 -разность чисел найденных с помощью 3N+1 - всегда нечетна, т.е. результат всегда четный: K=K/2, если K=2N K=K*3+1, если К=2N+1, причем после этой итерации K всегда будет четным и за этой итерацией всегда будет K/2, значит: K=(K*3+1)/2, если K=2N+1 А вот дальше... СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
| YuriT |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 26.2.2004 Репутация: нет Всего: нет |
Багира, я, конечно, злой, но не на столько. О том, что задача не решается я узнал только после того как в этом топике про это рассказали. После чего покапался по нэту и только убедился в этом. Я сам 2 дня пытался это решить, но сами понимаете, что тщетно. |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
||||
|
||||
| ExPresident |
|
|||
|
Unregistered |
ДОКАЗАННО!!! Эта задача решается за 100 в среднем шагов и на С++.
Поправьте меня если я неправ! |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Нужна не программа, а строгое доказательство в общем виде.
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 5 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| Blueboar |
|
|||
|
Unregistered |
Я конечно не претендую на решение данной проблемы. Мы пытались
составить программу, находящую самые вредные такие числа на http://algolist.manual.ru. Вот к чему пришли 1) Можно не разбирать четные числа (они максимум на 1 сложнее в два раза меньших) 2) Числа вида 3N+2 можно не рассматривать, так как всегда есть более вредное число 2N+1: 2N+1 ---> 6N+4 --> 3N+2 3) Самое сложное: Если число нечетное, то 1) Прибавляем к нему 1 2) Раскладываем полученное число на множители 3) Заменяем все двойки на тройки 4) Вычитаем из полученного числа 1 5) Делим на 2 6) Это число получится из исходного после 2N+1 итераций, где N - число двоек в разложении. Например - число 7. Прибавляем 1 - 8 Раскладываем - 8=2*2*2 Заменяем - 3*3*3=27 Вычитаем - 27-1=26 Делим - 26/2 = 13 Это число получится из 7 после 2*3+1=7 итераций Проверка 7-22-11-34-17-52-26-13 :-) Если интересно, будем копать дальше |
|||
|
||||
| Sined |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 19.5.2004 Репутация: нет Всего: 0 |
Мое почтение!
Вот размышление на тему решения данной задачи Введем последовательность нечетных чисел след.образом Chislo[k] = (Chislo[k-1]*3+1)>>j, k>1, j>0(j степень двойки на кот. делится число на к-1 шаге). Или что то же самое Chislo[k] = (Chislo[k-1]<<1 +(Chislo[k-1]+1))>>j Причем в силу нечетности Chislo[k] имеет вид 1...0111(1 повторяются к раз). 0 -- 1-ый 0 Chislo[k-1]<<1 =1..01110 Chislo[k-1]+1 =01.s1000(s - нас не интересует что). Таким образом при сложении 0 точно "перепрыгивает" по крайней мере на 1 позицию вправо(cлева от него единица в каждом слагаемом ),где в последствии и "съедается" сдвигом. Таким образом Chislo[k] <= Chislo[k-1]*2 и последовательность заведомо сходится; Если нет 0 в числе т.е. Сhislo[k-1] = 1......1...1..1...1, то п.1 Сhislo[k] = 10...1..1..1..1 (т.е хотябы 1 ноль точно появится -- проверяется непосредственной проверкой, мат. индукцией или как угодно), далее повторяем до тех пор пока не останется 1. Вот самая банальная часть докозательства -- Осталось 1) Строго показать, что последовательность сходится 2) Проверить п.1 У меня ни сил ни времени (ехал в метро когда решал) не хватило. Это сообщение отредактировал(а) Sined - 31.8.2004, 18:23 |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Хочется сказать пару слов о решении Багиры : условие взятое в док-ве слишком жесткое, достаточно чтоб для любого начального значения, исключая 1, существовал элемент последовательности меньший начального, совершенно не обязательно доказывать строгое убывание.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| bagira |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
3,14
Возможно, ты прав... Но, узнав, что задача не решается в принципе, я больше и не бралась за нее Но вдруг у тебя получится? -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Пробовал, ещё до того как эта задача попала на форум, один злобный студент с механико-математического факультета подсунул, не получилось док-во с числами вида 2*j+1, где j-нечётное
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
Вот этот момент можно пояснить? Очевидно, что 2*j+1 и так нечетно, если j - целое. |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Если j - нечётное, а не 2*j + 1
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| Peter |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 28.7.2003 Где: Ставрополь Репутация: нет Всего: 1 |
Прочитал решение bagira. Даже упрощенное - оно с ошибками. Комментарии нужны?
-------------------- всё, что делаете, делайте от души, как для Господа (Послание апостола Павла колоссянам, 3:23). |
|||
|
||||
| bagira |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2858 Регистрация: 25.10.2003 Где: в тайге Уральских гор Репутация: нет Всего: 123 |
В чем мои ошибки? -------------------- Сегодня ты не бродил, не искал, не любил - можно сказать - и не жил... Ф.Х. Дагларджа (Турция) http://zveriolginovour.ru/ https://vmeste.yandex.ru/zveriolginovour |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |