導航:首頁 > 源碼編譯 > php組合演算法

php組合演算法

發布時間:2022-06-27 02:49:51

『壹』 php若干數組組合演算法

$a=array ( '黑色','白色' );
$b=array ( '36碼' ,'37碼' );
$c=array ( '男款' ,'女款' );

$d = array();
foreach ($a as $i => $_a ){
foreach ($b as $ii => $_b ){
foreach ($c as $iii => $_c ){
$d[] = $_a.$_b.$_c;
}
}
}
print_r($d);

Array
(
[0] => 黑色36碼男款
[1] => 黑色36碼女款
[2] => 黑色37碼男款
[3] => 黑色37碼女款
[4] => 白色36碼男款
[5] => 白色36碼女款
[6] => 白色37碼男款
[7] => 白色37碼女款
)

『貳』 用php完成排列組合問題

functionnumOfChoice($m,$n){
returnpow($m)/pow($n)/pow($m-$n);
}

functionpow($n){
$x=1;
for($i=2;$i<=n;$i++)$x*=$i;
return$x;
}

『叄』 怎麼用PHP代碼做出數字1到10的所有組合方式

你的思路是 先隨機得到一個1-100的i
然後截取判斷,再在判斷里循環?

先改思路,在不考慮效率的情況下,先循環
$arr=Array();
while(count($arr)<10){
$temp=rand(1,100);
//判斷末尾數字
//判斷是否數組中存在,不存在就$arr[]=$temp;存在就continue;
}

如果考慮效率,則修改演算法,1-100就是兩位數,隨機生成十位數,末位再隨機生成3和8比較好

『肆』 求個PHP數組歷遍組合的演算法

哥們,跟你個思路,你要學會使用PHP強大的數組處理能力。
思路很簡單:把數組全部合並後,用PHP自帶的array_unique()把相同元素的值進行移除,你自己試試array_unique()看能不能進行多維數組的元素過濾。

『伍』 求PHP 數組的任意組合的演算法函數

function getRank($arr, $len=0, $str="") {

global $arr_getrank;
$arr_len = count($arr);
if($len == 0){
$arr_getrank[] = $str;
}else{
for($i=0; $i<$arr_len; $i++){
$tmp = array_shift($arr);
if (empty($str))
{
getRank($arr, $len-1, $tmp);
}
else
{
getRank($arr, $len-1, $str.",".$tmp);
}
// array_push($arr, $tmp);
}
}
}

測試:
$words = array('a1','b2','c3','d4','e5');
$arr_getrank = array();
getRank($words, 3);
print_r($arr_getrank);

輸出:
Array
(
[0] => a1,b2,c3
[1] => a1,b2,d4
[2] => a1,b2,e5
[3] => a1,c3,d4
[4] => a1,c3,e5
[5] => a1,d4,e5
[6] => b2,c3,d4
[7] => b2,c3,e5
[8] => b2,d4,e5
[9] => c3,d4,e5
)

『陸』 求一個PHP計算數組內元素的不同組合,請看案例

除了a和d之外其它元素任意組合的演算法有嗎,沒有的話可以網路一下,本題目需要的就是除了a和d之外其它元素任意組合,輸出的時候每一組前面添加a、後面添加d。

『柒』 用php實現排列組合問題

vararr=[];
functionf(l,n,s){
if(n==l||n==0){
for(vari=0;i<l;i++){
s+=n?"1":"0";
}
arr.push(s);
returns;
}else{
f(l-1,n-1,s+"1");
f(l-1,n,s+"0");
}
}
f(4,2,"");

這道題本來是,一個長度為l的二進制數字,其中有n個1,剩下都為0,有多少種組合,放這道題好像可以,最後只要取得arr的長度就行了

varm=4;
varn=2;
vars=0;

functionf(m,n){
if(m==n||n==0){
s++;
returnfalse;
}
f(m-1,n-1);
f(m-1,n);
}
f(m,n);

『捌』 php 如何做排列組合

原理相當於自己建個樹,不停地在末尾里添加上子節點,最後遍歷整個樹。
代碼如下:
<?php
$str='1=12,2=34,3=14,4=23';
$_str=explode(',',$str);
$_str=array_reverse($_str);
$_key=array();
$tree=array();
foreach($_str as $v){
$str=explode('=',$v);
$_key[]=$str[0];
$str=str_split($str[1]);
$_tree=array();
foreach($str as $node){
if(empty($tree)):
$_tree[][]=$node;
else:
foreach($tree as $_node) $_tree[]=str_split(implode($_node).$node);
endif;
}
$tree=$_tree;
}
foreach($tree as $v){
$str=array();
foreach($v as $_k=>$_v) $str[]=$_key[$_k].'='.$_v;
echo implode(',',array_reverse($str)),'<br>';
}
?>

『玖』 求一個一維數組內部元素的所有可能的組合的演算法用php實現

原理相當的簡單,就是依次向盤子裡面放abc三種水果,後面一個在前面的一堆方法基礎上再依次的放,放一個盤的時候有3種放法,兩個盤的時候有3*3種放法,三個盤的時候是3*3*3種放法,所以最後總數是3的5次方,也就是有243個組合。下面的代碼就是體現出這種邏輯。
<?php
$fruit=array('a','b','c');
$dishes[]=range(1,5);
for($i=0;$i<5;$i++){
foreach($dishes as $k=>$v){
foreach($fruit as $_fruit){
$v[$i]=$_fruit;
$dishes[]=$v;
}
unset($dishes[$k]);
}
}
$dishes=array_values($dishes);
foreach($dishes as $k=>$v)
echo $k+1,':',implode('',$v),'<br>';
?>

『拾』 php實現全組合演算法

<?php
/**
* 在數組$a中任意m個元素組合
*
* @param array $a 候選的集合
* @param int $n 候選的集合大小
* @param int $m 組合元素大小
* @param array $b 儲存當前組合中的元素,這里儲存的是元素鍵值
* @param int $M 相當一個常量,一直保持不變
* @return */
function combine($a,$n,$m,$b,$M){
for($i=$n;$i>=$m;$i--){
$b[$m-1]=$i-1;
if($m > 1){
$combine[]=combine($a,$i-1,$m-1,$b,$M);
}else{
$onecombine='';
for($j=$M-1;$j>=0;$j--){
$onecombine.=$a[$b[$j]];
}
$combine[]=$onecombine;
$onecombine='';
}
}
return $combine;
}
/**
* 遞歸輸出數組
*
* @param array $arr 待輸出的數組
* @return int 返回數組元素個數*/
function recursionarray($arr){
$i=0;
foreach($arr as $value){
if(is_array($value)){
$i+=recursionarray($value);
}else{
echo $value."<br/>";
$i++;
}
}
return $i;
}
$a=array('A','B','C','D','E','F','G','H','I','J');
$b=array();
$combine=combine($a,10,5,$b,5);
$count=recursionarray($combine);
echo "總共有".$count."組合";
?>

閱讀全文

與php組合演算法相關的資料

熱點內容
編譯小視頻軟體 瀏覽:595
盒馬app買東西怎麼送 瀏覽:119
編譯原理國產 瀏覽:691
在線用pdf轉word 瀏覽:424
咪咕app怎麼發表文章 瀏覽:209
phpsftp上傳 瀏覽:936
php可以幹嘛 瀏覽:879
梁箍筋加密區需要滿綁扎嗎 瀏覽:330
程序員半個月工資多少 瀏覽:821
雲伺服器租賃還是私有 瀏覽:752
php七牛視頻上傳 瀏覽:14
php五星 瀏覽:311
使用api訪問外部文件夾 瀏覽:220
自來水加密閥能控制水量嗎 瀏覽:351
移動花卡定向app怎麼訂 瀏覽:429
php調用txt 瀏覽:260
西安軟體公司程序員鼓勵師 瀏覽:135
預制樁的加密區怎麼區分 瀏覽:86
ea安裝游戲選擇文件夾 瀏覽:873
linuxapache負載均衡配置 瀏覽:651