組合算法的PHP解答方法
更新時(shí)間:2012年02月04日 15:59:33 作者:
有一個(gè)數(shù)組a,有N 個(gè)元素,現(xiàn)在要求從中找出含有任意元素的所有組合個(gè)數(shù)
題目:組合算法:有一個(gè)數(shù)組a,有N 個(gè)元素,現(xiàn)在要求從中找出含有任意元素的所有組合個(gè)數(shù)。
解答:先看規(guī)律吧:
假設(shè)這個(gè)數(shù)組為array(1,2,3,4,5)那么M=5;
可能出現(xiàn)的組合為:
1個(gè)數(shù)字的組合個(gè)數(shù): 5
2個(gè)數(shù)字的組合個(gè)數(shù): 4+3+2+1
3個(gè)數(shù)字的組合個(gè)數(shù): 3+2+1
4個(gè)數(shù)字的組合個(gè)數(shù): 2+1
5個(gè)數(shù)字的組合個(gè)數(shù): 1
很眼熟吧,就是一個(gè)逆序的9*9乘法表。除過第一行有M個(gè)組合外,其他的組合按乘法表來處理,2個(gè)FOR語句嵌套而已
代碼:
$c = 5;
$a = $c;
for($i=1;$i<=$c;$i++){
for($k=$c-$i;$k>0;$k–){
$a +=$k;
}
}
echo $a;
解答:先看規(guī)律吧:
假設(shè)這個(gè)數(shù)組為array(1,2,3,4,5)那么M=5;
可能出現(xiàn)的組合為:
1個(gè)數(shù)字的組合個(gè)數(shù): 5
2個(gè)數(shù)字的組合個(gè)數(shù): 4+3+2+1
3個(gè)數(shù)字的組合個(gè)數(shù): 3+2+1
4個(gè)數(shù)字的組合個(gè)數(shù): 2+1
5個(gè)數(shù)字的組合個(gè)數(shù): 1
很眼熟吧,就是一個(gè)逆序的9*9乘法表。除過第一行有M個(gè)組合外,其他的組合按乘法表來處理,2個(gè)FOR語句嵌套而已
代碼:
復(fù)制代碼 代碼如下:
$c = 5;
$a = $c;
for($i=1;$i<=$c;$i++){
for($k=$c-$i;$k>0;$k–){
$a +=$k;
}
}
echo $a;
相關(guān)文章
基于PHP實(shí)現(xiàn)用戶登錄注冊功能的詳細(xì)教程
這篇文章主要介紹了基于PHP實(shí)現(xiàn)用戶登錄注冊功能的詳細(xì)教程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
PHP實(shí)現(xiàn)的簡單對稱加密與解密方法實(shí)例小結(jié)
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡單對稱加密與解密方法,結(jié)合實(shí)例形式總結(jié)了常見的php對稱加密與解密操作方法,需要的朋友可以參考下2017-08-08
PHP開發(fā)中常用的三個(gè)表單驗(yàn)證函數(shù)使用小結(jié)
PHP Web開發(fā)中常用的三個(gè)表單驗(yàn)證函數(shù),這些都是一些經(jīng)常用到的判斷函數(shù)。2010-03-03
PHP MemCached 高級(jí)緩存應(yīng)用代碼
PHP MemCached 高級(jí)緩存應(yīng)用,使用MemCached的學(xué)習(xí)的朋友可以參考下。2010-08-08
解析php利用正則表達(dá)式解決采集內(nèi)容排版的問題
本篇文章是對php利用正則表達(dá)式解決采集內(nèi)容排版問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php中字符集轉(zhuǎn)換iconv函數(shù)使用總結(jié)
這篇文章主要介紹了php中字符集轉(zhuǎn)換iconv函數(shù)使用總結(jié),本文同時(shí)介紹了mb_convert_encoding函數(shù),需要的朋友可以參考下2014-10-10
判斷Keep-Alive模式的HTTP請求的結(jié)束的實(shí)現(xiàn)代碼
在使用短連接方式時(shí),每個(gè)HTTP請求對應(yīng)一個(gè)TCP連接,請求完成后連接立即斷開,服務(wù)器返回EOF。2011-08-08
PHP簡易延時(shí)隊(duì)列的實(shí)現(xiàn)流程詳解
普通的隊(duì)列是先進(jìn)先出,但是延時(shí)隊(duì)列并不是,而是加上了時(shí)間這一權(quán)重。希望到達(dá)時(shí)間點(diǎn)的先執(zhí)行。從某種意義上來講,延遲隊(duì)列的結(jié)構(gòu)并不像一個(gè)隊(duì)列,而更像是一種以時(shí)間為權(quán)重的有序堆結(jié)構(gòu)2022-11-11

