回溯(b a c k t r a c k i n g)是一種系統(tǒng)地搜索問題解答的方法。為了實現(xiàn)回溯,首先需要為問題定義一個解空間( solution space),這個空間必須至少包含問題的一個解(可能是最優(yōu)的)。在迷宮老鼠問題中,我們可以定義一個包含從入口到出口的所有路徑的解空間;在具有n 個對象的0 / 1背包問題中(見1 . 4節(jié)和2 . 2節(jié)),解空間的一個合理選擇是2n 個長度為n 的0 / 1向量的集合,這個集合表示了將0或1分配給x的所有可能方法。當n= 3時,解空間為{ ( 0 , 0 , 0 ),( 0 , 1 , 0 ),( 0 , 0 , 1 ),( 1 , 0 , 0 ),( 0 , 1 , 1 ),( 1 , 0 , 1 ),( 1 , 1 , 0 ),( 1 , 1 , 1 ) }。
標簽:
搜索
上傳時間:
2014-01-17
上傳用戶:jhksyghr
將1到N的N個自然數(shù)排成一列,共有1*2*3……*N種不同的排列方法,如N=3時,有6種排列方案,分別為123,132,213,231,312,321.試編程序輸出1到N的全部排列,假設(shè)N<10.
為了設(shè)計出由計算機輸出1到N的全部排列程序,就必須尋找不同排列之間的規(guī)律.通過觀察N=5(參見本例的運行結(jié)果)的排列情況,可以發(fā)現(xiàn),如果把每個排列看作一個自然數(shù),
則所有排列對應(yīng)的數(shù)是按從小到大的順序排列
標簽:
123
132
213
231
上傳時間:
2013-12-24
上傳用戶:lvzhr