作者truthoftrick (享受人生~)
看板Programming
标题Re: [请益] 排列组合的程式逻辑
时间Tue Aug 19 18:30:01 2008
※ 引述《magiccat (~米雪~)》之铭言:
: dear all,
: 目前有一个排列组合的程式要写,
: 例如:C5取3(看得懂我在写什麽吗?)
: 应该会有10种组合,
: 那麽我应该要怎样透过程式自动排列出来并记录成下列的格式呢?
: 1 2 3
: 1 2 4
: 1 2 5
: 1 3 4
: 1 3 5
: 1 4 5
: 2 3 4
: 2 3 5
: 2 4 5
: 3 4 5
: 目前的想法是回圈+副程式(副程式再CALL副程式自己)(但就是一直有盲点)>"<
: 希望有人指点一下, 谢谢!!我用的是E-views的统计软体在写程式
: E-views的程式写法跟VB比较像(C语言的写法我看不懂, 谢谢!)
应该有更好的作法
不过大致上简单的想法是
取了一个之後, 後面递回去call m-1,n-1
void combination(int start, int end, int m,int n, char set[])
{
int i,j;
if(n==0)
{
print(set);
}
else
{
for(i = start ; i < end-n+1 ; i++)
{
set[i] = 1;
combination(i+1,end,m-1,n-1,set);
set[i] = 0;
}
}
}
--
要和一个男生相处得很好,需要去了解他,但可以不用太爱他;
要和一个女生相处得很好,必须要很爱她,却不可以太了解她。
莎士比亚
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.125.92
1F:推 magiccat:感谢!!我再研究看看 140.135.89.198 08/20 12:12