2014 dxdy logo

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

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




На страницу Пред.  1, 2
 
 
Сообщение25.01.2009, 20:48 
KiberMath в сообщении #181124 писал(а):
Хм...
А как решить эту задачу без использования рекурсии???

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

 
 
 
 
Сообщение25.01.2009, 22:10 
мда ) Я понял что это можно сделать )
Но как? У меня пока нет идей =(

 
 
 
 
Сообщение25.01.2009, 22:49 
http://algolist.manual.ru/maths/combinat/hanoi.php

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

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

 
 
 
 
Сообщение25.01.2009, 23:24 
Не понял вот этот момент:

Любое натуральное число 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 
KiberMath в сообщении #181185 писал(а):
Любое натуральное число i единственным образом представимо в виде i=(2t+1)*2k, где t и k - целые (т.е. как произведение нечетного числа на некоторую степень двойки)

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

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

 
 
 
 
Сообщение26.01.2009, 13:57 
Аватара пользователя
Йа Гринько в сообщении #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 
Someone в сообщении #181373 писал(а):
Наверняка имелась в виду формула $i=(2t+1)\cdot 2^k$.

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

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

 
 
 
 
Сообщение26.01.2009, 14:09 
Аватара пользователя
Йа Гринько писал(а):
Написана брехня...откровенная (или я что-то упустил в курсе высшей математики, где упоминается про четность всех натуральных чисел)

Не, не брехня. Неаккуратность при выделении степени двойки в разложении числа $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 
вздымщик Цыпа в сообщении #181379 писал(а):
...случай $k=0$ Вы как-то ловко не заметили

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

 
 
 
 
Сообщение26.01.2009, 20:34 
Да я не про i. Я не воткну откуда

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

 
 
 
 
Сообщение26.01.2009, 20:46 
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 
Мда.. скопипастил и не посмотрел что из-этого получилось (
так откудавзялись эти самые
Так вот, на $i$-ом ходе переносится диск номер $k$ со стержня номер $((-1)^{N-k}*t \mod 3)$ на стержень номер $((-1)^{N-k}*(t+1) \mod 3)$.

?

 
 
 [ Сообщений: 28 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group