24小时热门版块排行榜    

查看: 1248  |  回复: 21
当前主题已经存档。

maomao1210

金虫 (正式写手)

[交流] 【求助】求助个问题,从n个数中挑选出m个不同的数字,要全部的可能性。

假设给定一组数字 1 2 3 4 5 6 7 8 9 10, 从其中挑选出3个,(1,2,3)(1,2,4)(1,2,5)。。。。。

有没有优化的算法?
知道的大侠,请不吝赐教。
本人仅余2个金币,所以没有金币,不要介意。哈哈。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

tjyl

金虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+3,VIP+0):谢谢参与,欢迎常来 7-12 13:08
program select90
     integer i,j,k
      integer:: a(10)=(/ (i,i=1,10) /)
      write(*,"(120(A2,3(I3),A2,/))" ((( "(",a(i),a(j),a(k),"",&
                                       k=j+1,10),j=i+1,10),i=1,10)
end program
隐DO版本的
不过效率方面就不知道了,没有测试过。
这样写就是代码简短点而已,不过控制输出格式得预先计算好到底有多少个才能格式化输出
7楼2009-07-12 13:03:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

woshilsh

荣誉版主 (职业作家)

优秀版主

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
没关系,版主们帮你奖励吧,你这个问题有点恐怖?干啥用的
[center][url=http://www.91cool.net/][img]http://id.91cool.net/sign/?name=小木虫印&say=各位版主辛苦了![/img][/url][/center]
2楼2009-07-11 23:23:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
wangmonk(金币+5,VIP+0):详细应助~ tjyl,欢迎常来~奖励多多哦~ 7-12 09:02
#include
  2 int main()
  3 {
  4         void getall(int *a,int );
  5         int a[10]={1,2,3,4,5,6,7,8,9,10};
  6         getall(a,10);
  7         return 0;
  8 }
  9 void getall(int a[],int total)
10 {
11         int i,j,k,number=1;
12         for(i=0 ; i != total; i++)
13                 for(j=i+1; j !=total; j++)
14                         for (k=j+1 ;k !=total; k++)
15                         {       printf("( %2d,%2d,%2d)  ",
16                                     *(a+i),*(a+j),*(a+k));
17                         if (number%5 ==0)
18                                 printf("\n";
19                         number++;
20
21                         }
22 }

输出:
yl@debian:~$ ./a.out
(  1, 2, 3)  (  1, 2, 4)  (  1, 2, 5)  (  1, 2, 6)  (  1, 2, 7)  
(  1, 2, 8)  (  1, 2, 9)  (  1, 2,10)  (  1, 3, 4)  (  1, 3, 5)  
(  1, 3, 6)  (  1, 3, 7)  (  1, 3, 8)  (  1, 3, 9)  (  1, 3,10)  
(  1, 4, 5)  (  1, 4, 6)  (  1, 4, 7)  (  1, 4, 8)  (  1, 4, 9)  
(  1, 4,10)  (  1, 5, 6)  (  1, 5, 7)  (  1, 5, 8)  (  1, 5, 9)  
(  1, 5,10)  (  1, 6, 7)  (  1, 6, 8)  (  1, 6, 9)  (  1, 6,10)  
(  1, 7, 8)  (  1, 7, 9)  (  1, 7,10)  (  1, 8, 9)  (  1, 8,10)  
(  1, 9,10)  (  2, 3, 4)  (  2, 3, 5)  (  2, 3, 6)  (  2, 3, 7)  
(  2, 3, 8)  (  2, 3, 9)  (  2, 3,10)  (  2, 4, 5)  (  2, 4, 6)  
(  2, 4, 7)  (  2, 4, 8)  (  2, 4, 9)  (  2, 4,10)  (  2, 5, 6)  
(  2, 5, 7)  (  2, 5, 8)  (  2, 5, 9)  (  2, 5,10)  (  2, 6, 7)  
(  2, 6, 8)  (  2, 6, 9)  (  2, 6,10)  (  2, 7, 8)  (  2, 7, 9)  
(  2, 7,10)  (  2, 8, 9)  (  2, 8,10)  (  2, 9,10)  (  3, 4, 5)  
(  3, 4, 6)  (  3, 4, 7)  (  3, 4, 8)  (  3, 4, 9)  (  3, 4,10)  
(  3, 5, 6)  (  3, 5, 7)  (  3, 5, 8)  (  3, 5, 9)  (  3, 5,10)  
(  3, 6, 7)  (  3, 6, 8)  (  3, 6, 9)  (  3, 6,10)  (  3, 7, 8)  
(  3, 7, 9)  (  3, 7,10)  (  3, 8, 9)  (  3, 8,10)  (  3, 9,10)  
(  4, 5, 6)  (  4, 5, 7)  (  4, 5, 8)  (  4, 5, 9)  (  4, 5,10)  
(  4, 6, 7)  (  4, 6, 8)  (  4, 6, 9)  (  4, 6,10)  (  4, 7, 8)  
(  4, 7, 9)  (  4, 7,10)  (  4, 8, 9)  (  4, 8,10)  (  4, 9,10)  
(  5, 6, 7)  (  5, 6, 8)  (  5, 6, 9)  (  5, 6,10)  (  5, 7, 8)  
(  5, 7, 9)  (  5, 7,10)  (  5, 8, 9)  (  5, 8,10)  (  5, 9,10)  
(  6, 7, 8)  (  6, 7, 9)  (  6, 7,10)  (  6, 8, 9)  (  6, 8,10)  
(  6, 9,10)  (  7, 8, 9)  (  7, 8,10)  (  7, 9,10)  (  8, 9,10)

[ Last edited by tjyl on 2009-7-12 at 00:04 ]
3楼2009-07-11 23:58:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tjyl

金虫 (正式写手)

fortran的话改一下就成了吧
4楼2009-07-11 23:58:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

★
wangmonk(金币+1,VIP+0):及时反馈!共同进步! 7-12 16:25
多谢斑竹和楼上的tjyl大侠。
     IMPLICIT REAL*8(A-H,O-Z)

        DIMENSION IA(10)
        DATA IA /1,2,3,4,5,6,7,8,9,10/
        NUMBER=1
        DO I=1,10
          DO J=I+1,10
             DO K=J+1,10
        WRITE(*,*) IA(I),IA(J),IA(K),NUMBER
        NUMBER=NUMBER+1
        ENDDO
        ENDDO
        ENDDO

        END
感谢tjyl大侠,这是修改成fortran之后的结果。
对于小的数目是可以的,呵呵,但大的数目,很多重循环的话,有点困难,呵呵。
要是有一个更优化的算法就好了。嘿嘿。
5楼2009-07-12 10:55:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
问题本身应该不存在什么优化的空间吧。
6楼2009-07-12 11:20:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

感谢,呵呵,
个人感觉还是有优化方案的,呵呵。我要从100个数字挑选出40个数字,那我写40重循环吗?

[ Last edited by maomao1210 on 2009-7-12 at 15:03 ]
8楼2009-07-12 14:56:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ms98

★
小木虫(金币+0.5):给个红包,谢谢回帖交流
本身就是个排列组合问题,不能说个人感觉有就有。如果需要挑40个全部的组合,就必须写40重循环...
9楼2009-07-12 17:18:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maomao1210

金虫 (正式写手)

是呀,不要自己想当然,我已经找到了不需要40重循环的优化方案了。不要太肯定了。不然不好收场呀,呵呵。问题是排列组合问题,只要是学过数学的就会,我还发帖求助问个啥呀。

[ Last edited by maomao1210 on 2009-7-12 at 17:41 ]
10楼2009-07-12 17:39:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 maomao1210 的主题更新
普通表情 龙 兔 虎 猫 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[职场人生] 40+中年人失业后,还能找到好工作吗? +10 xqy2009 2026-10-13 12/600 2026-10-15 19:24 by lpwang
[有机交流] 用NBS溴化时溶剂除了CCl4外还有什么 +3 18834002860 2026-10-12 6/300 2026-10-15 14:30 by 长沙摩尔信息科�
[基金申请] 申请科研项目纯靠实力能成功吗? 200+7 David1982 2026-10-13 11/550 2026-10-15 10:30 by zyqchem
[硕博家园] 极限拉扯,如何抉择 +11 Isak0320 2026-10-12 15/750 2026-10-14 21:55 by 猫鱼不是鱼
[论文投稿] 二审4个多月了还是Awaiting Reviewer Scores 10+3 纳斯达克ML 2026-10-11 4/200 2026-10-14 17:30 by babero
[有机交流] OpenAI又攻克数学难题了,离AI做有机合成还有多远? +8 wangyl_123 2026-10-10 13/650 2026-10-14 15:12 by zuesli
[教师之家] 课题组会帮你通过考核么? +4 好运来~9527 2026-10-10 7/350 2026-10-13 08:41 by xli1984
[公派出国] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:34 by XQNyDCa1Tk5n
[公派出国] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:26 by XQNyDCa1Tk5n
[找工作] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 22:26 by XQNyDCa1Tk5n
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 9/450 2026-10-11 22:15 by XQNyDCa1Tk5n
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 22:11 by XQNyDCa1Tk5n
[教师之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 22:06 by XQNyDCa1Tk5n
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 (EPI+-1)(金币-50) +5 qR2AdCWTVtkw 2026-10-09 10/500 2026-10-11 14:25 by VOMexwnDzOFZ
[教师之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 (EPI+-1)(金币-50) +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 14:05 by VOMexwnDzOFZ
[考研] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 qR2AdCWTVtkw 2026-10-09 8/400 2026-10-11 13:51 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:54 by VOMexwnDzOFZ
[找工作] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 qR2AdCWTVtkw 2026-10-09 7/350 2026-10-11 10:34 by VOMexwnDzOFZ
[考博] 招收博士生一名 +3 mandolin 2026-10-10 3/150 2026-10-11 10:21 by 不是山谷!
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +4 qR2AdCWTVtkw 2026-10-09 4/200 2026-10-11 03:14 by M0zrYVSAnxpE
信息提示
请填处理意见