最初の N 個の自然数の適切な順列を見つける C++

WBOY
リリース: 2023-08-25 19:09:13
転載
918 人が閲覧しました

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

この問題では、整数値 N があります。私たちのタスクは、最初の N 個の自然数の適切な順列を見つけることです。

配置とは、配置順序を考慮して、オブジェクトのセットのすべてまたは一部を配置することです。

良い順列 は、$1\leqslant{i}\leqslant{N}$ が次の条件を満たす順列です:

$P_{pi}\:= \ :i$

$P_{p!}\:=\:i$

この問題を理解するために例を挙げてみましょう、

Input : N = 1
Output : -1
ログイン後にコピー

解決アプローチ

問題の簡単な解決策は、pi = i.となるような

順列

p を見つけることです。その後、 pi != i を満たす方程式です。つまり、$2x \leqslant x$ となる値 x に対して、p2x - 1 と p2k# # が得られます。 #. これで、n の置換方程式を満たす方程式ができました。ここで、方程式の解を示します。

サンプル

プログラムソリューションの動作を説明するため

#include <iostream>
using namespace std;
void printGoodPermutation(int n) {
   if (n % 2 != 0)
      cout<<-1;
   else
      for (int i = 1; i <= n / 2; i++)
         cout<<(2*i)<<"\t"<<((2*i) - 1)<<"\t";
}
int main() {
   int n = 4;
   cout<<"Good Permutation of first N natural Numbers : \n"; printGoodPermutation(n);
   return 0;
}
ログイン後にコピー

出力

Good Permutation of first N natural Numbers :
2 1 4 3
ログイン後にコピー

以上が最初の N 個の自然数の適切な順列を見つける C++の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート