Re: [請益] 排列組合的程式邏輯
※ 引述《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
推
08/20 12:12, , 1F
08/20 12:12, 1F
討論串 (同標題文章)