回 帖 发 新 帖 刷新版面

主题:[讨论]谁能用PASCAL语言,帮我做一下这道题,谢谢

[b]排列列举:第一年把五件礼物发给五个孩子,第二年又把同样的五件礼物给发给这五个孩子,而每个孩子的礼品都与上年的不同,请编程找出所有的方案。(请用PASCAL语言,谢谢)[/b]

回复列表 (共20个回复)

11 楼

晕啊,这么多枚举变量,方法很不好啊
[em15]

12 楼

var
  k:array[1..120,1..5]of integer;
  i1,i2,i3,i4,i5,j,i,l:integer;
begin
  i:=1;
  for i1:=1 to 5 do
    for i2:=1 to 5 do
      if i1<>i2 then
        for i3:=1 to 5 do
          if (i1<>i3)and(i2<>i3) then
            for i4:=1 to 5 do
               if (i1<>i4)and(i2<>i4)and(i3<>i4) then
                 for i5:=1 to 5 do
                   if (i1<>i5)and(i2<>i5)and(i3<>i5)and(i4<>i5) then
                     begin
                       k[i,1]:=i1;
                       k[i,2]:=i2;
                       k[i,3]:=i3;
                       k[i,4]:=i4;
                       k[i,5]:=i5;
                       inc(i);
                     end;
  l:=0;
  for i:=1 to 120 do
    for j:=1 to 120 do
      if (k[i,1]<>k[j,1])and(k[i,2]<>k[j,2])and(k[i,3]<>k[j,3])
         and(k[i,4]<>k[j,4])and(k[i,5]<>k[j,5]) then
      begin
        for i1:=1 to 5 do
          write(k[i,i1]:2);
        write(' ');
        for i1:=1 to 5 do
          write(k[j,i1]:2);
        writeln;
        inc(l);
      end;
  write(l);
end.

13 楼


var s[1..6] of integer;
    i:integer;
begin
s[1]:=0;
for i:=2 to 5 do 

 s[i]:=i*s[i-1]+((i+1)mod 2);
writeln(s[5]);
end.

14 楼


不好意思,昨天没看好就乱打.
今天改正一下啊
var s:array[1..5] of integer;
       i,c;integer;
begin
             s[1]:=0;
           c:=-1;
        for  i:=2 to 5 do 
    begin
        c:=c*(-1);
        s[i]:=s[i-1]*i+c;
    end;
       writeln(s[5]); 
end.


15 楼

用搜索好不?哈哈!













小题大作.............

16 楼

初学pascal  加群28276316

17 楼

1  此题是一典型的伯努力——欧拉装错信封问题:{m个人,m封信,问邮递员全部送错的排列数}
  公式  d(M)=M!(1-1/1!+1/2!-1/3!…………+(-1)^M/M!){注:(-1)^M即 -1的M次方}
2  递归公式:d(m)=(m-1)*(d(m-1)+d(m-2))
          其中 d(1)=0;d(2)=1;

18 楼


19 楼

5*4*3*2*1

20 楼

这是错位排列
f(1):=0
f(2):=1
f(n):=(n-1)*[f(n-1)+f(n-2)]{n>2}
[em3]

我来回复

您尚未登录,请登录后再回复。点此登录或注册