1樓:123456我i擬
const mix=21; //題意如此,暫且限定到這。
varn,m,d,r,i,z,c:integer;
q:array[0..mix] of 0..1;
a:array[0..mix] of integer;
procedure print;
var i,j:integer;
begin
for i:=1 to r do
write(a[i]:3); // 題意如此往往容易忽視.
writeln;
end;
function panding(l,m:integer):boolean;
vari,j:integer;
begin
panding:=true;
for i:=1 to m-1 do
begin
if a[i]=l then begin panding:=false; exit; end;
if a[i]>l then begin panding:=false; exit; end;
end;
end;
procedure try (k:integer);
var i,j,l:integer;
begin
for j:=a[k-1] (1)to n doif (panding(j,k))and (q[j]=0) thenbegin
a[k]:=j;
q[j]:=1;
if k=r then begin print endelse try(k+1);
q[j]:=0;
end;
end;
begin
assign(input,'compage.in');
reset(input);
assign(output,'compage.out');
rewrite(output);
read(n,r);
if (n=0) or (r=0) thenhalt; //注意邊界.
for i:=1 to n do
begin
q[i]:=0;
a[i]:=0;
end;
a[0]:=1;
try(1);
close(input);
close(output);
end.
2樓:
啊哈,此乃全排列是也!遞推遞迴都可以
排列與組合 有序與無序,排列組合怎麼區分有序和無序?
經過前面的學習我們知道排列與組合的共同點是從n個不同的元素中,任取m m n 個元素,而不同點是排列是按照一定的順序排成一列,組合是無論怎樣的順序併成一組,因此 有序 與 無序 是區別排列與組合的重要標誌 下面通過例項來體會排列與組合的區別 例題 判斷下列問題是排列問題還是組合問題?並計算出種數 1...
數學排列和組合練習題目,數學排列與組合題目
第一題,用1,3,5做末位,有3種方法,然後首位有4種選擇,答案3 4 4 3 2 288個 第二題,分兩類,即0做末位,結果是4 3 12個,若2或4作末位,有2 3 3 18個,所以答案是12 18 30個。第一題 當首位是1 3 5時,末位只有兩種選擇 因為是奇數 中間三位從四個數裡選三個排,...
高中數學排列與組合
首位是3 末位0,2或4共有3 3!18個五位數。首位是4 末位是0或2共有2 3 12個五位數首位是2如下 23140,23410,23014,23104,24130,24310,21304,21340,21430共9個五位數 合起來共39個五位數滿足條件。偶數在這裡只有三種情況,分別是0,2,4...