【求助】pascal!将组合改成排列!

来源:百度知道 编辑:UC知道 时间:2024/06/24 16:47:19
【请将此程序(组合)改成(排列)】

【谢谢!感激不尽!】

var
a:array[1..1000]of integer;
i,j,n,r:integer;
begin
readln(n,r);
a[1]:=n;
i:=1;
repeat
if a[i]>r-i then
if i=r then
begin
for j:=1 to r do write(a[j]);
writeln;
dec(a[i]);
end
else
begin
a[i+1]:=a[i]-1;
inc(i);
end
else
begin
dec(i);dec(a[i]);
end
until a[1]=r-1;
end.

我想说排列和组合的算法思想是不一样的
组合就比排列简单N多
现在排列的优化还在逐渐向前(貌似有排列优化比赛。。。)
给个网站你看下吧 我也懒得复制 不懂再留言吧
http://hi.baidu.com/bluedream23/blog/item/be6e362aa7a9bf3b5243c153.html

+涐QQ群 涐哏袮缦缦繲释 94196170