作者wxWidgets (孤独或类似的东西)
看板Programming
标题Re: [问题] 请问有关"组合"的程式
时间Sun Oct 22 10:42:09 2006
#include <stdio.h>
int array[7] = {1,2,3,4,5,6,7};
int m = 5, n = 3; // C(m,n)
int *tmpArray;
void pick(int allNum, int pickNum, int firstIndex);
void main()
{
tmpArray = new int[n];
pick(m,n,0);
}
void pick(int allNum, int pickNum, int firstIndex)
{
if ( pickNum <= 0 ) {
for( int j = n-1; j >= 0; j-- )
printf( "%d", tmpArray[j] );
printf("\n");
return;
}
for ( int i = firstIndex; i <= allNum-pickNum; i++ ) {
tmpArray[pickNum - 1] = array[i];
pick( allNum, pickNum-1, i+1 );
}
}
※ 引述《ssagit (ssagit)》之铭言:
: ※ 引述《timemaker (超越取悦别人的心态)》之铭言:
: : 我想写一个程式:
: : 可以列出所有的组合
: : 比如说:
: : 有5个数字:1~5
: : 我想取任取3个数字的组合:
: : 总共有10组
: : 就可以列出
: : (123)(124)(125)(134)(135)
: : (145)(234)(235)(245)(345)
: : 请问板上有人有写过类似的程式吗?
: : 请教教我
: : 谢啦
: http://phpfi.com/148401
: 前阵子刚好帮别人写过,
: 和你要的结果差不多,
: 只要输出改一下就好了....
: 至於原理, 如果你会写 1~5 的所有排列,
: 你再问我吧....
: 如果不会, 请 Google「permutation 递回」,
: 自己先找一些资料来看吧....
--
我溺水了。
在我已经淹水的脑袋里。
我没有挣扎,因为我催眠自己是只鱼。
一只不会游泳的鱼。
於是我养了一只鱼。
在我已经淹水的脑袋里。 『在脑袋里养条鱼』
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.165.110.200