成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

騎士巡游java代碼 騎士源碼

騎士巡游問題時(shí)間復(fù)雜度是多少

樓上的程序太麻煩,效率低【騎士游歷問題】 設(shè)有一個(gè)m×n的棋盤(2≤m≤50,2≤n≤50),在棋盤上任一點(diǎn)有一個(gè)中國象棋“馬”,馬走的規(guī)則為:馬走日字;馬只能向右走。當(dāng)m,n給出后,同時(shí)給出馬起始的位置和終點(diǎn)的位置,試找出從起點(diǎn)到終點(diǎn)所有路徑的數(shù)目。輸入: m,n,x1,y1,x2,y2 (分別表示m,n、起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo))輸出: 路徑數(shù)目(若不存在,則輸出0)【分析】 本題可以使用深度搜索發(fā)求解,但是效率很低,當(dāng)路徑很多時(shí),不可能在短時(shí)間內(nèi)出解??梢圆捎脛?dòng)態(tài)規(guī)劃的設(shè)計(jì)思想。(專為樓下設(shè)計(jì)) 從(x1,y1)位置出發(fā),按照由左到右的順序定義階段的方向。位于(x2,y2)的左方且可達(dá)(x2,y2)的跳馬位置集合都是(x2,y2)的子問題,起點(diǎn)至(x2,y2)的路徑數(shù)實(shí)際上等于起點(diǎn)至這些位置集的路徑數(shù)之和??梢园凑针A段的順序依次計(jì)算每一個(gè)階段每個(gè)點(diǎn)的路徑數(shù)目。 階段i:中國象棋馬當(dāng)前的列位置(x1≤i≤x2) 狀態(tài)j:中國象棋馬在i列的行位置(1≤i≤m) 狀態(tài)轉(zhuǎn)移方程map[i,j]:起點(diǎn)(x1,y1)至(i,j)的路徑數(shù)目附標(biāo)程:const maxm=50; maxn=50;var m,n,x1,y1,x2,y2:integer; i,j,k,x,y:integer; map:array[-2..maxm+2,-2..maxn+2] of extended;beginfillchar(map,sizeof(map),0);readln(m,n,x1,y1,x2,y2);map[x1,y1]:=1;for i:=x1+1 to x2 do for j:=1 to m do map[i,j]:=map[i-1,j-2]+map[i-1,j+2]+map[i-2,j-1]+map[i-2,j+1];writeln(map[x2,y2]:0:0);end. 搜索比較慢,有代碼如下:program p7_1;const dx:array[1..8] of integer=(1,-1,-2,-2,-1,1,2,2); dy:array[1..8] of integer=(2,2,-1,-1,-2,-2,-1,1);var board:array[-1..7,-1..7] of integer; t,i,j,a,b:integer;procedure search(t,x,y:integer);var p,m,n:integer;begin if t=26 then begin for m:=1 to 5 do begin for n:=1 to 5 do write(board[m,n]:3); writeln; end; t:=-1; halt end; if board[x,y]=0 then begin board[x,y]:=t;inc(t); for p:=1 to 8 do search(t,x+dx[p],y+dy[p]); board[x,y]:=0; end;end;begin t:=1; for i:=-1 to 7 do for j:=-1 to 7 do board[i,j]:=-1; for a:=1 to 5 do for b:=1 to 5 do board[a,b]:=0; search(t,1,1); if t-1 then write('Wrong!');end.

創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)遂寧托管服務(wù)器報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

騎士巡游問題

沒做過,看過?!膀T士總是移向具有最少出口且沒有到達(dá)過的方格之一”是說,它可移動(dòng)的位置有N個(gè),在這N個(gè)中,尋找下一次可移動(dòng)的位置最少的那個(gè),做為騎士要去的點(diǎn)的位置。這是一種貪婪法,有的位置有解但你卻求不出來。

騎士巡游問題 pascal 急?。。?/h2>

樓上的程序太麻煩,效率低

【騎士游歷問題】

設(shè)有一個(gè)m×n的棋盤(2≤m≤50,2≤n≤50),在棋盤上任一點(diǎn)有一個(gè)中國象棋“馬”,馬走的規(guī)則為:馬走日字;馬只能向右走。當(dāng)m,n給出后,同時(shí)給出馬起始的位置和終點(diǎn)的位置,試找出從起點(diǎn)到終點(diǎn)所有路徑的數(shù)目。

輸入:

m,n,x1,y1,x2,y2 (分別表示m,n、起點(diǎn)坐標(biāo)和終點(diǎn)坐標(biāo))

輸出:

路徑數(shù)目(若不存在,則輸出0)

【分析】

本題可以使用深度搜索發(fā)求解,但是效率很低,當(dāng)路徑很多時(shí),不可能在短時(shí)間內(nèi)出解??梢圆捎脛?dòng)態(tài)規(guī)劃的設(shè)計(jì)思想。(專為樓下設(shè)計(jì))

從(x1,y1)位置出發(fā),按照由左到右的順序定義階段的方向。位于(x2,y2)的左方且可達(dá)(x2,y2)的跳馬位置集合都是(x2,y2)的子問題,起點(diǎn)至(x2,y2)的路徑數(shù)實(shí)際上等于起點(diǎn)至這些位置集的路徑數(shù)之和??梢园凑针A段的順序依次計(jì)算每一個(gè)階段每個(gè)點(diǎn)的路徑數(shù)目。

階段i:中國象棋馬當(dāng)前的列位置(x1≤i≤x2)

狀態(tài)j:中國象棋馬在i列的行位置(1≤i≤m)

狀態(tài)轉(zhuǎn)移方程map[i,j]:起點(diǎn)(x1,y1)至(i,j)的路徑數(shù)目

附標(biāo)程:

const

maxm=50;

maxn=50;

var

m,n,x1,y1,x2,y2:integer;

i,j,k,x,y:integer;

map:array[-2..maxm+2,-2..maxn+2] of extended;

begin

fillchar(map,sizeof(map),0);

readln(m,n,x1,y1,x2,y2);

map[x1,y1]:=1;

for i:=x1+1 to x2 do

for j:=1 to m do

map[i,j]:=map[i-1,j-2]+map[i-1,j+2]+map[i-2,j-1]+map[i-2,j+1];

writeln(map[x2,y2]:0:0);

end.

搜索比較慢,有代碼如下:

program p7_1;

const dx:array[1..8] of integer=(1,-1,-2,-2,-1,1,2,2);

dy:array[1..8] of integer=(2,2,-1,-1,-2,-2,-1,1);

var board:array[-1..7,-1..7] of integer;

t,i,j,a,b:integer;

procedure search(t,x,y:integer);

var p,m,n:integer;

begin

if t=26 then begin

for m:=1 to 5 do begin

for n:=1 to 5 do write(board[m,n]:3);

writeln;

end;

t:=-1;

halt

end;

if board[x,y]=0 then begin

board[x,y]:=t;inc(t);

for p:=1 to 8 do search(t,x+dx[p],y+dy[p]);

board[x,y]:=0;

end;

end;

begin

t:=1;

for i:=-1 to 7 do

for j:=-1 to 7 do board[i,j]:=-1;

for a:=1 to 5 do

for b:=1 to 5 do board[a,b]:=0;

search(t,1,1);

if t-1 then write('Wrong!');

end.

新聞名稱:騎士巡游java代碼 騎士源碼
本文地址:http://jinyejixie.com/article46/dopjjhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制網(wǎng)站用戶體驗(yàn)網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營
九江县| 扎囊县| 日照市| 江油市| 修武县| 鄂州市| 溆浦县| 治多县| 滨州市| 虹口区| 乌鲁木齐市| 定远县| 镇巴县| 宁国市| 呼和浩特市| 鄂托克旗| 兴和县| 内江市| 香港 | 康定县| 札达县| 闵行区| 梁平县| 南京市| 北海市| 镇巴县| 云林县| 焉耆| 全椒县| 渭源县| 盘山县| 阳西县| 志丹县| 旺苍县| 重庆市| 江达县| 册亨县| 秭归县| 丰都县| 沿河| 盐池县|