1樓:市守沐
別人放程式,我一般不看的,好長。
所以我也不放了,告訴你幾種方法吧。
1:普通方法:搜尋(貌似12皇后還是13皇后就一秒鐘出不來了。2:利用棋盤的對稱,加快搜尋。
3:位運算(算是用2進位制模擬搜尋,只不過判斷和操作速度很快。具體請call我。
八皇后問題 pascal
2樓:匿名使用者
我的演算法是回溯。
program xy;
vara:array[1..100]of integer;
b,c,d:array[-100..100]of boolean;
n,i,j,k:integer;
procedure try(k:integer);
var i:integer;
beginif k>n then begin for j:=1 to n do write(a[j],'writeln;end
else begin
for i:=1 to n do
if (b[i])and(c[k+i])and(d[k-i])then begin a[k]:=i;
b[i]:=false;
c[k+i]:=false;
d[k-i]:=false;
try(k+1);
b[i]:=true;
c[k+i]:=true;
d[k-i]:=true;
end;end;
end;begin
readln(n);
fillchar(b,sizeof(b),true);
fillchar(c,sizeof(c),true);
fillchar(d,sizeof(d),true);
try(1);
readln;
end.能不能多給點分啊,我打的不容易啊~~~
八皇后問題的free pascal程式設計(要求有解釋)拜託各位大神
pascal 的八皇后問題? 20
pascal八皇后問題
3樓:匿名使用者
1樓,你似乎是沒學過dfs吧!8皇后都不知道,n皇后是8皇后的拓展。
8皇后**:
var x:array [1..8] of longint;
a,b,c:array [-7..16] of boolean;
i,o,tot:longint;
procedure dfs(i:longint);
varj:longint;
beginfor j:=1 to 8 do
beginif a[j] and b[i+j] and c[i-j] thenbegin
x[i]:=j;
a[j]:=false;
b[i+j]:=false;
c[i-j]:=false;
if i<8 then dfs(i+1)
else inc(tot);
a[j]:=true;
b[i+j]:=true;
c[i-j]:=true;
end;end;
end;begin
fillchar(a,sizeof(a),true);
fillchar(b,sizeof(b),true);
fillchar(c,sizeof(c),true);
dfs(1);
writeln(tot)
end.
pascal八皇后問題 煩指出錯誤在哪
4樓:匿名使用者
為什麼要用整數陣列呢?用布林陣列不是更方便嗎 !
陣列本身應作為遞迴過程的引數一步步地影響到後面的結果,遞迴過程中的陣列不能採用全域性陣列。
pascal 八皇后問題
5樓:網友
監視一下**報錯的。看看陣列中的變數例如a[i] 的i啊是不是超過了範圍,這個和xp沒有關係,高版本的編譯器中,如果你陣列下標越界的話,會在另外一個陣列的空位置借用一下,這樣很可能就能過掉。剛才我試了一下delphi 7 和 lazarus
26都能正常執行。cena 沒試,其實如果cena 過了就可以無視了。
6樓:匿名使用者
隨著windows版本的升級,對dos程式的相容性就越差。據說在vista下已經不允許全屏的dos的graph作圖了。
什麼是 八皇后問題 呀,什麼是八皇后問題?
八皇后問題是一個古老而著名的問題,是回溯演算法的典型例題。該問題是十九世紀著名的數學家高斯1850年提出 在8x8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行 同一列或同一斜線上,問有多少種擺法。高斯認為有76種方案。1854年在柏林的象棋雜誌上不同的作者發表了40種...
c語言八皇后,c語言八皇后
這是經典題目,答案網上有的是,抄一個學學就可以了 回溯法進行求解,程式實現如下 include define queens 8 定義結果陣列的大小,也就是皇后的數目 int a queens 1 八皇后問題的皇后所在的行列位置,從1開始算起,所以加1 int main else if a i que...
用塔羅問感情,摸出聖盃侍從寶劍皇后
其實,我們一bai路走來都會遇du到自己喜歡zhi的人,並非一人而已。dao但我們因為法內律和道德的約束而鞏固著原有容的婚姻。這就是人類最偉大的理智,也是社會與家庭和諧的重要保證。你與現女友已經相處七年了,七年的風風雨雨,並沒有結束你們的愛情,為何此時你產生糾結呢?揭開你的心結,一定是遇到了與女友可...