楼主: xiaosanmao
2106 7

[原创博文] 求助,如何产生排列数? [推广有奖]

  • 0关注
  • 0粉丝

博士生

39%

还不是VIP/贵宾

-

威望
0
论坛币
187 个
通用积分
0.0001
学术水平
1 点
热心指数
4 点
信用等级
0 点
经验
4639 点
帖子
247
精华
0
在线时间
279 小时
注册时间
2009-9-3
最后登录
2012-1-19

楼主
xiaosanmao 发表于 2009-11-16 21:47:54 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有整数若干,想写出所有排列并存放到某个数据集中
比方由四个数据 3, 5 ,9 ,13
那么数据集中是4!=24个记录
3 5 9 13
3 5 13 9
3 9 13 5
。。
。。
。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据集 如何 记录

回帖推荐

jingju11 发表于4楼  查看完整内容

3# xiaosanmao

sushe1527 发表于5楼  查看完整内容

学习了 ~~~~~ data z; set y; call sortn(i,j,k,l,m,n); if (i=2)&(j=2)&(k=3)&(l=4)&(m=5)&(n=6) then output; run; proc sql noprint; create table final as select * from y where exists (select * from z where y.z=z.z) ;quit;

bobguy 发表于6楼  查看完整内容

1# xiaosanmao 8 data _null_; 9 array x(3) (1,2,3); Here is an example. SAS function dim=dimension fact=factorial call routine: call allperm = all permutaion. 10 do i = 1 to fact(dim(x)); 11 call allperm(i, of x[*]); 12 put i 5. +2 x[*]; 13 end; 14 run; 1 1 2 3 2 1 3 2 3 3 1 2 4 3 2 1 5 ...

本帖被以下文库推荐

沙发
chin 发表于 2009-11-16 22:00:21
matlab
perms([3 5 9 13 ])

藤椅
xiaosanmao 发表于 2009-11-16 22:14:08
如果用sas呢

板凳
jingju11 发表于 2009-11-18 04:20:37
3# xiaosanmao


  1. data new;
  2. do i =3,5, 9,13;
  3. do j =3,5 ,9,13;
  4.   if  ^(j =i) then do;
  5.    do k =3,5, 9,13;
  6.     if ^(k =j |k =i)  then do;
  7.      do l =3,5, 9,13;
  8.       if ^(l =k | l =j |l =i)then do;
  9.        PermN+1;
  10.        output;
  11.       end;
  12.      end;
  13.     end;
  14.    end;
  15.   end;
  16. end;
  17. end;
  18. run;
复制代码
已有 1 人评分经验 论坛币 收起 理由
bakoll + 3 + 3 精彩帖子

总评分: 经验 + 3  论坛币 + 3   查看全部评分

报纸
sushe1527 发表于 2009-11-18 04:26:44
学习了 ~~~~~
data z;
set y;
call sortn(i,j,k,l,m,n);
if (i=2)&(j=2)&(k=3)&(l=4)&(m=5)&(n=6) then output;
run;
proc sql noprint; create table final as
select * from y
where  exists
(select * from z where y.z=z.z)
;quit;

地板
bobguy 发表于 2009-11-18 08:33:54
1# xiaosanmao

8    data _null_;
9    array x(3) (1,2,3);
Here is an example.
SAS function dim=dimension
                      fact=factorial

call routine: call allperm = all permutaion.




10     do i = 1 to fact(dim(x));
11          call allperm(i, of x
  • );
    12          put i 5. +2 x
  • ;
    13     end;
    14   run;

        1  1 2 3
        2  1 3 2
        3  3 1 2
        4  3 2 1
        5  2 3 1
        6  2 1 3
  • 已有 1 人评分经验 论坛币 收起 理由
    bakoll + 3 + 3 精彩帖子

    总评分: 经验 + 3  论坛币 + 3   查看全部评分

    7
    jingju11 发表于 2009-11-18 21:48:32
    6# bobguy

    Right. no sense to code step by step when a function exists.

    8
    sushe1527 发表于 2009-11-18 22:07:31
    拜5楼
    DATA a;
    ARRAY x{4} (3 5 9 13);
    DO i=1 TO FACT(dim(x));
    CALL ALLPERM(i, of x1-x4);
    OUTPUT;
    drop i;
    END;
    RUN;

    您需要登录后才可以回帖 登录 | 我要注册

    本版微信群
    加好友,备注cda
    拉您进交流群
    GMT+8, 2025-12-25 08:56