數學上的排列組合

2021-09-02 03:26:02 字數 1281 閱讀 7221

// 下午一同事提出乙個有趣的問題:一行字母(數字符號也行),中間插入特定字元(字元型別不定,我這裡用加號),字母的順序不能變,如下:

ab =>  a+b  1種

abc=>a+bc;

ab+c;

a+b+c  3種

abcd=>a+bcd;ab+cd;a+b+cd;abc+d;a+bc+d;ab+c+d;a+b+c+d  7種

一次類推。

搞了差不多一下午,終於搞出來了;說說我的思路:先將字串(一行字母)分割成陣列,再對陣列進行隨機組合排列(組合排列中用+連線);形成「可以排列的多少種陣列」;對新陣列迴圈,迴圈中將每個元素的+替換成"" 將替換後的元素與abcd比較不一樣的就刪除;**如下:

public function countnum()else {

$res = "$ar[0]$ar[1]";

$res = "$ar[0]+$ar[1]";

return $res;

//***************end*********************

效果:abarray

( [1] => a+b

)abc

array

( [1] => a+bc

[2] => ab+c

[3] => a+b+c

)

abcd

array

( [1] => a+bcd

[2] => ab+cd

[3] => a+b+cd

[4] => abc+d

[5] => a+bc+d

[6] => ab+c+d

[7] => a+b+c+d

)

abcde

array

( [1] => a+bcde

[2] => ab+cde

[3] => a+b+cde

[4] => abc+de

[5] => a+bc+de

[6] => ab+c+de

[7] => a+b+c+de

[8] => abcd+e

[9] => a+bcd+e

[10] => ab+cd+e

[11] => a+b+cd+e

[12] => abc+d+e

[13] => a+bc+d+e

[14] => ab+c+d+e

[15] => a+b+c+d+e

)

// 這也許不是最簡便的方法,歡迎各位指導高效簡潔的方法,在此感謝啦!!

排列 組合數學

定義 從n個不同的元素中,取出m個不同元素,按照順序排成一列,叫做從n個元素取出m個元素的乙個排列。我們將從n個不同的元素取出m個元素所得到得不同排列數,叫做從n個元素取出m個元素的排列數 記為a n,m 其中n m a n,m n n 1 n m 1 n n m 定義 n個不同元素中取m個不同元素...

數學基礎 排列組合

a開頭的叫排列,c開頭的叫組合。排列a n,m n n 1 n m 1 n n m n為下標,m為上標,以下同 組合c n,m p n,m p m,m n m n m 排列 permutation 數學的重要概念之一。有限集的子集按某種條件的序化法排成列 排成一圈 不許重複或許重複等。從n個不同元素...

排列組合數學 子串行

題目描述 給定乙個小寫字母字串t 求有多少長度為m的小寫字母字串s滿足,t是s的乙個子串行 不需要連續 輸入描述 第一行乙個字串t 第二行乙個正整數m 輸出描述 輸出答案對109 7取模的值 示例1輸入a2 輸出51 說明長度為2的裡面有a的串有51種 備註 1 t m 105 列舉終點,前面的除了...