從1到n的遞增數列,取出m個數字的組合情況為C n m,如何為這些組合進行由1到C n m的編號

時間 2021-06-07 22:57:44

1樓:江山

從1~n中取m個數,有種方案。

對於兩種相異方案

其中設和分別為它們的編號,

定義當且僅當:

(1) 將組合對映到編號

舉個例子:

n=5, m=3時,求組合的編號。

從1到5看數字是否出現在組合中,

1不在組合中,所以組合至少比以1開頭的組合的編號大,而以1開頭的組合有種;

2在組合中,不提公升組合的編號;

3不在組合中,不考慮第一位(即求組合在3~5的組合中的排名),組合至少比以3開頭的組合的編號大,而以3開頭的組合有種;

4,5在組合中,不提公升組合的編號。所以最後編號為

思路:從1~n,沒在組合中出現的數增加該組合的排名

intord=1

;// the order of the combination setS

for(

inti=1

,mm=m

;i<=n;

++i)else

}return

ord;

(2) 將編號對映到組合

舉個例子:

n=5, m=3時,求編號為8的組合。

從1到5判斷數字是否出現在組合中,

以1開頭的組合有種,而編號8大於6,所以該組合不含1。將問題化簡為中選3個數(近似n=4, m=3),編號為8-6=2的組合。

以2開頭的組合有種,而編號2小於3,所以該組合含2。將問題化簡為中選2個數(近似n=3, m=2),編號為2的組合。

以3開頭的組合有種,而編號2等於2,所以該組合含3。將問題化簡為中選1個數(近似n=2, m=1),編號為2的組合。

以4開頭的組合有種,而編號2大於1,所以該組合不含4,將問題化簡為中選1個數(近似n=1, m=1),編號為1的組合。

顯然,5在組合中。

所以求得的組合為。

思路:從1~n,計算以該數開頭的組合的個數C,判斷編號與C的關係判斷該數是否出現在組合中,再化簡問題。

set<

int>S;

// the combination with order ord

for(

inti=1

,mm=m

;i<=n;

++i)else

}returnS;

從1到N中隨機抽取乙個數(N為上限,不被抽取)作為新的上限繼續抽取,直到上限為1。求總抽取次數的期望?

可以直接解通項,先佔一坑。爪機打公式不方便望見諒。題主已經得出了 E n E 1 E 2 E 3 E n 1 n 1 這樣的遞推關係,分母是 n 還是 n 1 不再深究。令 S 為 E 的字首和,即 S n E 1E n 即可得S n S n 1 S n 1 n 1S n S n 1 n 1 n 1...

共1 m個n進製數,其中含有數字q(1 q n 1)的數有幾個?

首先,先求出 位數中含 的個數 含有 個 的個數 所以總共有 個.回到原題 當 中不含 時 首先,從 開始,每 個數就有乙個含 的數出現,這個情況有 種.然後,從 開始,每 個數就有 個含 的數出現,這個情況有 種.然而這 個含 的數中,有 個重複的,所以共 種.從 開始,每 個數就有 個含 的數出...

一百天可以從n3 n2的水平到n1嗎,馬上報名了?

晗涵 聽到你每天都在學習,我覺得可以放一百個心啦。我覺得這兩個層次的突破主要是詞彙和語法,抓住這兩點,基本上沒有問題啦,建議就膩在紅藍寶書,大多數就這麼做的,看你個人吧。 腦殼疼少女 可以的,多刷題,我去年考差不多n2的水平準備了乙個半月就過了。知乎有好些n1技術貼,你可以看看哪種適合你。制定好複習...