SQL 漢諾塔
SQL 漢諾塔 自己原文公眾號: https://mp.weixin.qq.com/s/0zh6zm_BoUnalAqvVD6qDg
上週我釋出了一個SQL寫的海盜分金子的(那個SQL不是我寫的,我只是轉述)。同樣今天的這個也不是我寫的。
背景是這樣的一個遊戲(這個遊戲我是不會玩,但是見過),沒想到我玩都不會玩的遊戲,有人用SQL寫了。
漢諾塔是源自印度神話裡的玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按大小順序摞著64片黃金圓盤。
大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。傳說在印度,有這麼一個古老的傳說:在世界中心貝拿勒斯(在印度北部)的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有一個僧侶在按照下面的法則移動這些金片:一次只移動一片,不管在哪根針上,小片必須在大片上面。僧侶們預言,當所有的金片都從梵天穿好的那根針上移到另外一根針上時,世界就將在一聲霹靂中消滅,而梵塔、廟宇和眾生也都將同歸於盡。
題目要求
題目要求:用SQL找出最少移動次數,並且給出一種移法。
例子:3個圓盤
輸入:N=圓盤個數
每個步驟表示將一個柱子上的最上面一個圓盤移到另一個柱子。比如1->2 就是將1號柱最上方的圓盤放到2號柱的最上方。
假設有N個盤,最底下的N號盤在移動的時候,目標的柱子一定是空的。所以所有的其他N-1個盤子必定全部在另一柱子上。
把N號盤移過去之後,N-1要疊加到這個盤上面,和剛才移動N-1個盤子的方法是一樣的,只不過柱子的編號不同。
用遞迴SQL和MODEL都可以輕易寫出來。
SQL解答
每個步驟表示將一個柱子上的最上面一個圓盤移到另一個柱子。比如1->2 就是將1號柱最上方的圓盤放到2號柱的最上方。
假設有N個盤,最底下的N號盤在移動的時候,目標的柱子一定是空的。所以所有的其他N-1個盤子必定全部在另一柱子上。
把N號盤移過去之後,N-1要疊加到這個盤上面,和剛才移動N-1個盤子的方法是一樣的,只不過柱子的編號不同。
用遞迴SQL和MODEL都可以輕易寫出來。
SQL解答
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847127/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 漢諾塔-PythonPython
- 遞迴-*漢諾塔遞迴
- 漢諾塔詳解
- 漢諾塔和遞迴遞迴
- 奇怪的漢諾塔 - 題解
- 課時24:遞迴:漢諾塔遞迴
- 遞迴求解漢諾塔問題遞迴
- Python實現:漢諾塔問題Python
- 小知識系列(3):Hanoi塔(漢諾塔,河內塔)
- PHP實現漢諾塔演算法PHP演算法
- 漢諾塔遊戲《演算法很美》遊戲演算法
- 漢諾塔的圖解遞迴演算法圖解遞迴演算法
- python3:遞迴解漢諾塔問題Python遞迴
- 【YbtOJ高效進階 遞推-2】奇怪漢諾塔
- 從漢諾塔遊戲理解python遞迴函式遊戲Python遞迴函式
- 漢諾塔與二進位制、滿二叉樹的千絲萬縷二叉樹
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- JAVA漢諾塔遞迴 之SpringCloud企業分散式微服務雲架構快速開發平臺Java遞迴SpringGCCloud分散式微服務架構
- 漢羅塔問題 java實現Java
- [演算法練習及思路-程式設計師面試金典(Java解法)]No46.漢諾塔問題演算法程式設計師面試Java
- 恆諾:武漢市消費者信心調查
- 恆諾:武漢企業現狀調查報告
- Qt實用技巧:Qt+Sql server英漢漢英電子詞典QTSQLServer
- 專訪《逃離塔科夫》漢化團隊:塔科夫正處於艱難過渡期
- 恆諾:武漢民營企業經營現狀調查報告
- 恆諾:武漢市消費趨勢洞察研究(第一期)
- 英國諾丁漢大學:咖啡可成為減肥好幫手
- PL/SQL Developer下載地址和漢化包地址SQLDeveloper
- 手把手教你用java實現資料結構(五)-----查詢(二分法),遞迴(斐波那契數列,漢諾塔)演算法Java資料結構遞迴演算法
- 塔塔通訊宣佈3C可持續發展戰略;承諾到2035年實現淨零排放
- ORACLE SQL函式中文漢字轉拼音首字母OracleSQL函式
- 指揮官集結!《終末陣線:伊諾貝塔》聚合測試正式開啟
- 國米與蘇寧電競首聯動 意國腳波利塔諾同戰LOL
- 恆諾市場:2020年武漢市企業現狀調查–第二期
- 畢業真實版本#=(諾丁漢大學畢業證書)一模一樣版本辦理
- 818個人的努力《逃離塔科夫》漢化組專訪——背後的故事
- 課後習題4.9 Hanoi(漢諾)塔問題。這是一個經典的數學問題:古代有一個梵塔,塔內有3個座A,B,C,開始時A座上有64個盤子,盤子大小不等,大的在下,小的在上(見圖4.16)。有一個老和尚想把這
- 諾丁漢大學醫學院:研究發現咖啡或有助於抗擊肥胖和糖尿病