24小时热门版块排行榜    

CyRhmU.jpeg
查看: 927  |  回复: 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的回帖

ms98

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
sunxiao(金币+1,VIP+0):thank you 7-27 06:27
有牛人给明确答复了,以下是转帖,答题人为smth论坛的lushan5436 (密如):

参见组合类书籍
当然也可看 knuth第四册的组合部分。专门有算法讨论这个,如何生成组合
算法复杂度当然是C(N,M),当然,也不存在优化算法。

我很怀疑原题和帖子有出入,可能有什么关键条件没有写出来。
21楼2009-07-26 10:33:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 22 个回答

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的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见