2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 
Сообщение25.01.2009, 20:48 


20/01/09
38
Екатеринбург
KiberMath в сообщении #181124 писал(а):
Хм...
А как решить эту задачу без использования рекурсии???

Андрей АK в сообщении #181120 писал(а):
Однако, любую рекурсивную программу всегда можно заменить циклом.
Да, приходится использовать массивы считать сколько надо выделить памяти под них ... но ведь чтоб программа хорошо работала всё равно всё это придётся делать.
К тому-же циклы хорошо оптимизируются (в т.ч. рапараллеливаются) , легче отлаживиются, алгоритм предстаёт более явно и наглядно - сразу видны все слабые места и пути оптимизации.

 Профиль  
                  
 
 
Сообщение25.01.2009, 22:10 


19/12/06
164
Россия, Москва
мда ) Я понял что это можно сделать )
Но как? У меня пока нет идей =(

 Профиль  
                  
 
 
Сообщение25.01.2009, 22:49 


27/11/05
183
Северодонецк
http://algolist.manual.ru/maths/combinat/hanoi.php

Здесь смотрите нерекурсивный вариант Ханойской башни.

По поводу так называемой "вредности рекурсии" - хорошо, что этого революционного лозунга не слышат, например, разработчики компиляторов: точно был бы грандиозный конфликт...

 Профиль  
                  
 
 
Сообщение25.01.2009, 23:24 


19/12/06
164
Россия, Москва
Не понял вот этот момент:

Любое натуральное число i единственным образом представимо в виде i=(2t+1)*2k, где t и k - целые (т.е. как произведение нечетного числа на некоторую степень двойки). Так вот, на i-ом ходе переносится диск номер k со стержня номер ((-1)N-k*t mod 3) на стержень номер ((-1)N-k*(t+1) mod 3).

Из каких соображений получены эти формулы? :shock:

 Профиль  
                  
 
 
Сообщение26.01.2009, 06:50 


20/01/09
38
Екатеринбург
KiberMath в сообщении #181185 писал(а):
Любое натуральное число i единственным образом представимо в виде i=(2t+1)*2k, где t и k - целые (т.е. как произведение нечетного числа на некоторую степень двойки)

Написана брехня...откровенная (или я что-то упустил в курсе высшей математики, где упоминается про четность всех натуральных чисел)
Цитата:
Из каких соображений получены эти формулы?

Тоже интересно... :)

 Профиль  
                  
 
 
Сообщение26.01.2009, 13:57 
Заслуженный участник
Аватара пользователя


23/07/05
17973
Москва
Йа Гринько в сообщении #181244 писал(а):
Написана брехня...


Там формула написана неправильно. Кажется, чего проще: почитать темы http://dxdy.ru/topic8355.html, http://dxdy.ru/topic11877.html, http://dxdy.ru/topic183.html, где рассказывается о записи формул и оформлении цитат, и всё сделать правильно. Наверняка имелась в виду формула $i=(2t+1)\cdot 2^k$.

Код:
$i=(2t+1)\cdot 2^k$

 Профиль  
                  
 
 
Сообщение26.01.2009, 14:04 


20/01/09
38
Екатеринбург
Someone в сообщении #181373 писал(а):
Наверняка имелась в виду формула $i=(2t+1)\cdot 2^k$.

Эта формула тоже вызывает сомнение: при положительных $k$ число в любом случае четное,
а при отрицательных получается число дробное, но никак не натуральное. И от $t$ здесь это не зависит.
Или я что-то упустил в своей логике?

 Профиль  
                  
 
 
Сообщение26.01.2009, 14:06 


12/09/08

2262
Йа Гринько в сообщении #181377 писал(а):
Эта формула тоже вызывает сомнение: при положительных $k$ число в любом случае четное,
а при отрицательных получается число дробное, но никак не натуральное.
Про отрицательные никто не говорил, а случай $k=0$ Вы как-то ловко не заметили :)

 Профиль  
                  
 
 
Сообщение26.01.2009, 14:09 
Заслуженный участник
Аватара пользователя


01/08/06
3054
Уфа
Йа Гринько писал(а):
Написана брехня...откровенная (или я что-то упустил в курсе высшей математики, где упоминается про четность всех натуральных чисел)

Не, не брехня. Неаккуратность при выделении степени двойки в разложении числа $i$ на множители:
$$\forall i \in \mathbb{N}\,\,\exists! t,\,k \in \mathbb{Z}_{+}:\,i = (2t+1)2^k$ ($t$ и $k$ могут равняться нулю).

Добавлено спустя 1 минуту 13 секунд:

Пока пыхтел, всё уже давно объяснили :D

 Профиль  
                  
 
 
Сообщение26.01.2009, 14:09 


20/01/09
38
Екатеринбург
вздымщик Цыпа в сообщении #181379 писал(а):
...случай $k=0$ Вы как-то ловко не заметили

Черт...Пошел учить матчасть....

 Профиль  
                  
 
 
Сообщение26.01.2009, 20:34 


19/12/06
164
Россия, Москва
Да я не про i. Я не воткну откуда

Цитата:
Так вот, на i-ом ходе переносится диск номер k со стержня номер ((-1)N-k*t mod 3) на стержень номер ((-1)N-k*(t+1) mod 3).

 Профиль  
                  
 
 
Сообщение26.01.2009, 20:46 


20/01/09
38
Екатеринбург
KiberMath писал(а):
Да я не про i. Я не воткну откуда

Цитата:
Так вот, на i-ом ходе переносится диск номер k со стержня номер ((-1)N-k*t mod 3) на стержень номер ((-1)N-k*(t+1) mod 3).


Молодой человек....научитесь набирать формулы.... Ваши формулы приходится по ссылке проверять....

Так вот, на $i$-ом ходе переносится диск номер $k$ со стержня номер $((-1)^{N-k}*t \mod 3)$ на стержень номер $((-1)^{N-k}*(t+1) \mod 3)$.

 Профиль  
                  
 
 
Сообщение27.01.2009, 02:27 


19/12/06
164
Россия, Москва
Мда.. скопипастил и не посмотрел что из-этого получилось (
так откудавзялись эти самые
Так вот, на $i$-ом ходе переносится диск номер $k$ со стержня номер $((-1)^{N-k}*t \mod 3)$ на стержень номер $((-1)^{N-k}*(t+1) \mod 3)$.

?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group