迭代法塔的問題,如果中國

2021-09-09 01:27:30 字數 670 閱讀 1340

看遞迴解決方案。使用perl語言完成了不到一分鐘。

sub hanno_recursive

hanno_recursive($from, $reserve, $to, $n -1);

print "move $n from $from to $to\n";

hanno_recursive($reserve, $to, $from, $n -1);

}極其簡潔優美。充分體現了遞迴的優雅。

接下來。考慮迭代解法。考慮將問題分解為樹結構。非常顯然, 將a   b  c看成乙個圈, 則左右子樹具有某種對稱。即順時針或逆時針旋轉。

這樣。我們全然能夠通過左樹求得右樹, 問題變成為了線性遞迴, 這個非常easy轉換為迭代。

原理知道了, 寫這個**,還是比較費勁, 花了1個小時才調好。

sub hanno_iterate

for (my $index = 1; $index <= $n; $index++)

last if ($index == $n);

if (($index % 2) == ($n % 2))

} else

}my $tmp = $to;

$to = $reserve;

$reserve = $tmp;

}foreach my $opt(@left) }

牛頓迭代法的公式推導

牛頓迭代法求平方根 求n的平方根,先假設一猜測值x0 1,然後根據以下公式求出x1 再將x1 代入公式右邊,繼續求出x2 通過有效次迭代後即可求出n的平方根,xk 1 先讓我們來驗證下這個巧妙的方法準確性,來算下2的平方根 computed by mathomatic 1 x new x old y...

很牛的牛頓迭代法

在mit公開課 電腦科學與程式設計導論 的第五講中,講到編寫求解平方根的函式sqrt時,提到了牛頓迭代法。今天仔細一查,發現這是乙個用途很廣 很牛的計算方法。首先,考慮如何編寫乙個開平方根的函式sqrt float num,float e 引數num是要求開平方根的實數,引數e是計算結果可以達到多大...

牛頓迭代法(求函式的根)

在做二分與三分法的題時,聽聞有牛頓迭代法 感覺很高大上 自己居然捧起書看了一些 由於自己水平很渣,研究的並不深入。本篇未完結.個人感覺 1.使用牛頓迭代法,函式可以是任意 2.優點 對其單調性無特殊要求 缺點 若在該函式值處有多個根,往往只能求出乙個根 3.與二分三分法比較 二分要求是單調函式 三分...