Heim >Backend-Entwicklung >C++ >Finden Sie eine gute Permutation der ersten N natürlichen Zahlen in C++

Finden Sie eine gute Permutation der ersten N natürlichen Zahlen in C++

WBOY
WBOYnach vorne
2023-08-25 19:09:13950Durchsuche

找到前N个自然数的好排列 C++

In diesem Problem haben wir einen ganzzahligen Wert N. Unsere Aufgabe ist es, eine gute Permutation der ersten N natürlichen Zahlen zu finden.

Anordnung ist die Anordnung aller oder eines Teils einer Menge von Objekten unter Berücksichtigung der Reihenfolge, in der sie angeordnet sind.

Eine gute Permutation ist eine Permutation, bei der $1leqslant{i}leqslant{N}$ die folgenden Bedingungen erfüllt:

$P_{pi}:=:i$

$P_{p!}:=:i $

Nehmen wir ein Beispiel, um dieses Problem zu verstehen,

Input : N = 1
Output : -1

Lösungsansatz

Eine einfache Lösung für das Problem besteht darin, Permutationen p zu finden, so dass pi = i.

Dann werden wir es uns noch einmal überlegen die Gleichung, um pi != i zu erfüllen. Für einen Wert x mit $2x leqslant x$ haben wir also p2x - 1 und p2k. Jetzt haben wir eine Gleichung, die die Permutation erfüllt Gleichung für n. Hier die Lösung für die Gleichung.

Das obige ist der detaillierte Inhalt vonFinden Sie eine gute Permutation der ersten N natürlichen Zahlen in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen