多重排列的幾道習題

2021-10-05 22:22:58 字數 2016 閱讀 3558

今日心得: 個人天資有限, 比較認可學一門課一定要做習題,如果對某本書,某個領域想立體把握,深入**,個人歸納: 1 讀相關書 2 精讀** 3 和適合的人交流。4 做問題。

讀專業基礎書會遇到的問題, 書難,讀書太慢,很難進入狀態,一般讀著讀著就容易懈怠,甚至不知所以然,這時候做習題看起來最痛苦但是最有效的。而且必須做筆記。 這和程式設計學習很像,光看著書本介紹基本功,而不去找一些問題,很難有興奮點去繼續下去。還有乙個辦法是在同乙個點上多集中閱讀大量資料。只有自己做起來,手腦動起來,學的效果才最好。 這一點上我很認同b站的李博士的觀點。

今天的習題來自乙個群裡交流的問題,涉及到多重排列。我們適當地多選幾道題去分析.

先回答幾個基礎性的問題。 參考內容源自科大版的組合數學引論。

1 什麼是多重集合

正式的多重集的概念大約出現在2023年代。

多重集合同一般集合一樣,是一組物件的整體,只不過不像一般集合那樣必須要求集合中每個元素互不相同, 例如

m

=m =\

m=是乙個10個元索的多重集合,其中有 3個 a

aa,1 個 b

bb, 2個 c

cc , 4個 d

dd .

注: 我們一般說集合,其中三要素就是元素具有互異性。這裡多重集合我們拓寬了集合的概念。

2 多重集合的一般表示

多重集合表示為 m

=m = \

m=其中a1,

a2…a

na_1,a_2\ldots a_n

a1​,a2

​…an

​是互異元素。

3 多重集合的r

rr排列

多重集合m

=m =\

m=的r

rr 排列數為k

應用: 用26個英文本母可以構造出多少個包含4個母音字母、長度為8的字串?

4 多重集合全排列

5 應用 leetcode 第62題:

網友給出的思路和解法

參考:其中的思路一就是我們的數學的方法: 類似我們書本下面的習題。

6 預留的思考:不過需要注意即使是這種數學方法,在計算機**中也是需要考慮複雜性的。那麼這樣的複雜性是多少呢? 這是我暫時留下的疑問。

多重排列問題

輸出1 m個數中取n個數的所有多重排列。例如n 2,m 3的所有多重排列為 1 11 21 3 2 12 2 2 33 1 3 23 3 include include include include include include include include include include i...

多重排列和多重組合

比如有這樣乙個例子 helloo這個單詞字母排列有多少種方案呢?我們學過無重排列,那我們是不是可以轉化呢?我們把 l o 分別加上下標1,2,那麼就有6個不同的字母了。全排列的個數為6!然後我們在除以重複數字的冗餘度即 6!2 2!這就是多重排列的方案數了。那我們來擴充套件一下 二項式定理 a b ...

字符集的排列演算法 包括重排列

問題 輸入一串字元,每個字元都是唯一的,比如 a b c d 需要輸出這串字元的全部排列。分析 根據排列原理,排列的可能性有n 種 n為字元的個數 直覺上講,首先從字元集合中選取乙個字元,然後從剩下的字元中選取另外乙個字元,如此下去,直到所有字元用完為止。另外一種可能性是 先假設乙個子串已經排列好,...