Heim > Backend-Entwicklung > PHP-Problem > So finden Sie alle Array-Teilmengen in PHP

So finden Sie alle Array-Teilmengen in PHP

zbt
Freigeben: 2023-07-05 13:30:01
Original
1282 Leute haben es durchsucht

php-Methode zum Auffinden aller Array-Teilmengen: 1. Teilen Sie ein großes Problem mit der rekursiven Methode in mehrere kleine Probleme auf, wenden Sie dann auf jedes kleine Problem dieselbe Verarbeitungsmethode an und lösen Sie schließlich alle kleinen Probleme. Kombinieren Sie sie. 2. Verwenden Sie Bitoperationen, initialisieren Sie das Ergebnis zunächst in einem leeren Array und durchlaufen Sie dann alle Zahlen von 0 bis 2 mit der n-ten Potenz -1 mithilfe einer Schleife. Jede Zahl stellt eine Teilmenge dar. In der inneren Schleife wird anhand von Bitoperationen ermittelt, ob die aktuelle Position ausgewählt ist. Bei Auswahl wird das Element mit dem entsprechenden Bit zur Teilmenge hinzugefügt. Fügen Sie abschließend die Teilmenge zum Ergebnisarray hinzu.

So finden Sie alle Array-Teilmengen in PHP

Die Betriebsumgebung dieses Tutorials: Windows10-System, PHP8.1.3-Version, DELL G3-Computer.

In der PHP-Entwicklung ist Array eine sehr häufig verwendete Datenstruktur, die zum Speichern einer Reihe verwandter Daten verwendet werden kann. Manchmal müssen wir alle Teilmengen eines Arrays finden, das heißt, wir müssen ein neues Array auswählen, das aus einer beliebigen Anzahl von Elementen aus dem ursprünglichen Array besteht. In diesem Artikel wird erläutert, wie Sie mit PHP alle Teilmengen eines Arrays finden.

Zunächst müssen wir ein Konzept klären: Eine Teilmenge eines Arrays bezieht sich auf ein neues Array, das aus 0 oder mehr Elementen besteht, die zufällig aus dem ursprünglichen Array ausgewählt werden. Die Teilmengen des ursprünglichen Arrays [1, 2, 3] sind beispielsweise: [], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3].

Im Folgenden stellen wir zwei häufig verwendete Methoden vor, um alle Teilmengen eines Arrays zu finden.

1. Rekursion verwenden

Rekursion ist eine effektive Methode zur Lösung von Problemen. Sie unterteilt ein großes Problem in mehrere kleine Probleme und wendet dann dieselbe Verarbeitungsmethode auf jedes kleine Problem an. Schließlich werden alle kleinen Probleme gelöst werden kombiniert. Bei dieser Methode können wir die Rekursion verwenden, um alle Teilmengen eines Arrays zu finden.

Die spezifische Implementierung lautet wie folgt:

function subsets($nums) {
$result = [[]]; // 初始化结果,包含一个空集合
foreach ($nums as $num) {
$count = count($result); // 当前结果的数量
for ($i = 0; $i < $count; $i++) {
$newSubset = $result[$i]; // 获取当前结果集合
$newSubset[] = $num; // 加入当前元素
$result[] = $newSubset; // 加入结果数组
}
}
return $result;
}
Nach dem Login kopieren

Im obigen Code ist das erste Initialisierungsergebnis ein Array, das eine leere Sammlung enthält. Dann durchlaufen Sie jedes Element im ursprünglichen Array, fügen es für jedes Element zu jeder Teilmenge im Ergebnisarray hinzu und fügen die neue Teilmenge zum Ergebnisarray hinzu. Abschließend wird das Ergebnisarray zurückgegeben.

2. Verwenden Sie bitweise Operationen

Eine weitere häufig verwendete Methode zum Lösen einer Teilmenge eines Arrays ist die Verwendung bitweiser Operationen. Da eine Teilmenge eines Arrays durch eine Binärzahl dargestellt werden kann, zeigt jedes Bit an, ob das Element an dieser Position ausgewählt ist. Zum Beispiel [1, 2, 3] Es gibt insgesamt 3 Elemente. Eine 3-stellige Binärzahl kann beispielsweise für die Auswahl und 0 für die Nichtauswahl verwendet werden ] kann durch die Binärzahl 101 dargestellt werden.

Die spezifische Implementierung lautet wie folgt:

function subsets($nums) {
$result = []; // 初始化结果为空数组
$n = count($nums); // 数组的长度
for ($i = 0; $i < pow(2, $n); $i++) {
$subset = []; // 初始化子集
for ($j = 0; $j < $n; $j++) {
if ($i & (1 << $j)) { // 使用位运算判断该位是否选中
$subset[] = $nums[$j]; // 若选中,则将该元素加入子集
}
}
$result[] = $subset; // 将子集加入结果数组
}
return $result;
}
Nach dem Login kopieren

Im obigen Code ist das erste Initialisierungsergebnis ein leeres Array. Verwenden Sie dann eine Schleife, um alle Zahlen von 0 bis 2-1 zu durchlaufen, wobei jede Zahl eine Teilmenge darstellt. In der inneren Schleife werden Bitoperationen verwendet, um zu bestimmen, ob die aktuelle Position ausgewählt ist. Wenn ausgewählt, werden die Elemente an der entsprechenden Position zur Teilmenge hinzugefügt. Fügen Sie abschließend die Teilmenge zum Ergebnisarray hinzu. Abschließend wird das Ergebnisarray zurückgegeben.

Zusammenfassung:

In diesem Artikel werden zwei häufig verwendete Methoden zum Finden aller Teilmengen eines Arrays vorgestellt, nämlich die rekursive Methode und die bitweise Operationsmethode. Diese beiden Methoden können sowohl Funktionen erreichen als auch eine gewisse Effizienz aufweisen. Wählen Sie in der tatsächlichen Entwicklung einfach die geeignete Methode entsprechend den spezifischen Anforderungen aus. Mit diesen Methoden können wir problemlos alle Teilmengen eines Arrays lösen und so die Entwicklungseffizienz verbessern

Das obige ist der detaillierte Inhalt vonSo finden Sie alle Array-Teilmengen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage