Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel einer PHP-Methode zur Ausgabe der Anordnung oder Kombination mehrerer Elemente

Beispiel einer PHP-Methode zur Ausgabe der Anordnung oder Kombination mehrerer Elemente

怪我咯
怪我咯Original
2017-07-12 14:20:061284Durchsuche

Permutation und Kombination sind die grundlegendsten Konzepte der Kombinatorik. Unter der sogenannten Anordnung versteht man das Sortieren einer vorgegebenen Anzahl an Elementen aus einer vorgegebenen Anzahl an Elementen. Unter Kombination versteht man das Herausnehmen nur einer bestimmten Anzahl von Elementen aus einer bestimmten Anzahl von Elementen, unabhängig von der Sortierung. Das zentrale Problem von Permutationen und Kombinationen besteht darin, die Gesamtzahl möglicher Situationen für Permutationen und Kombinationen gegebener Anforderungen zu untersuchen. Permutation und Kombination stehen in engem Zusammenhang mit der klassischen Wahrscheinlichkeitstheorie.

In diesem Artikel wird hauptsächlich beschrieben, wie die Anordnung oder Kombination mehrerer Elemente in PHP ausgegeben wird. Der Beispielcode lautet wie folgt

<?php
$arr = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;);
$result = array();
$t = getCombinationToString($arr, 1);
print_r($t);
$t = getCombinationToString($arr, 2);
$t2 = getunique($t);
print_r($t2);
$t = getCombinationToString($arr, 3);
$t2 = getunique($t);
print_r($t2);
$t = getCombinationToString($arr, 4);
$t2 = getunique($t);
print_r($t2);

function getunique($t){
	$t2 = array();
	//print_r($t);
	for($i=0;$i<count($t);$i++){
		$count_list = array_count_values($t[$i]);
		$flag = 1;
		foreach($count_list as $ck=>$cv){
			if($cv>1){
				$flag = 0;
				break;
			}
		}
		if($flag){
			sort($t[$i]);
			$flag2 = 1;
			if($t2){
				foreach($t2 as $t2k=>$t2v){
					if($t[$i]==$t2v){
						$flag2 = 0;
						break;
					}
				}
			}
			if($flag2){
				$t2[] = $t[$i];
			}
		}
	}
	return $t2;
}

function getCombinationToString($arr, $m) {
	if ($m ==1) {
	 return $arr;
	}
	$result = array();
	
	$tmpArr = $arr;
	unset($tmpArr[0]);
	for($i=0;$i<count($arr);$i++) {
		$s = $arr[$i];
		$ret = getCombinationToString(array_values($tmpArr), ($m-1), $result);
		
		foreach($ret as $row) {
			//$result[] = $s . $row;
			$temp = array();
			$temp[] = $s;
			if(is_array($row)){
				$temp = array_merge($temp,$row);
			}else{
				$temp[] = $row;
			}
			sort($temp);
			$result[] = $temp;
		}
	}
 return $result;
}

?>

Das obige ist der detaillierte Inhalt vonBeispiel einer PHP-Methode zur Ausgabe der Anordnung oder Kombination mehrerer Elemente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn