Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Help]以C語言來寫排列組合的問題...

0 views
Skip to first unread message

成崗簧韻

unread,
Aug 26, 2003, 2:53:10 AM8/26/03
to
【 在 nev...@moca.csie.chu.edu.tw (I have) 的大作中提到: 】
: 請問.....
: 我若想知道 C(m,n) 組合的所有case為合,程式該怎麼寫
: 例如: 所有的東西為A,B,C,D,E, 而C(5,2) = 10
: 那所有的排列為:
: AB AC AD AE
: BC BD BE
: CD CE
: DE
: 如何將以上的case列出來......
: 我想過用for-loop來做,若n=2,則為兩層的loop
: 但是,n的質不一定為多少,所以,無法固定for-loop的層數.. ><

有沒有考慮用《遞迴》來做呢?
或是不需要用到這麼複雜的方式?

--
[m [1;35m※ 來源:‧靜宜大學計算機中心bbs站 bbs.pu.edu.tw‧[FROM: adsl-sta-tpe-146-170] [m

無限的海

unread,
Aug 26, 2003, 8:00:04 AM8/26/03
to
==> 在 shuanh...@bbs.pu.edu.tw (成崗簧韻) 的文章中提到:

> 【 在 nev...@moca.csie.chu.edu.tw (I have) 的大作中提到: 】
> : 請問.....
> : 我若想知道 C(m,n) 組合的所有case為合,程式該怎麼寫
> : 例如: 所有的東西為A,B,C,D,E, 而C(5,2) = 10
> : 那所有的排列為:
> : AB AC AD AE
> : BC BD BE
> : CD CE
> : DE
> : 如何將以上的case列出來......
> : 我想過用for-loop來做,若n=2,則為兩層的loop
> : 但是,n的質不一定為多少,所以,無法固定for-loop的層數.. ><
> 有沒有考慮用《遞迴》來做呢?
> 或是不需要用到這麼複雜的方式?

C(5,2) = 任選兩個方法數 + C(3,2)

基本上你可以這樣想。用 dynamic programming 的方式,
而實作其實就是 recursion。

加油喔! :-)

--
[31;1m╮ ╮ [33;1m╭─╮ [32;1m╭─╗ [36;1m═┬╮ [37;1m*Anti-Redhat 抵制紅帽
[31;1m╠─╣ [33;1m╠─╣ [32;1m╭┼╯ [36;1m │ [37;1m*http://www.slat.org/event/redhat-flag
[31;1m╰ ╰ [33;1m╰ ╰ [32;1m╚─╯ [36;1m╰┴═ [0;37;40m
--
* Post by hazi from 61-225-114-141.HINET-IP.hinet.net
* Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>

0 new messages