C++ で書かれており、最初の 3 項が等差数列で最後の 3 項が等比数列である 4 倍体の数を求めます。
この記事では、最初の 3 項に A.P. を、最後の 3 項に G.P. を使用してクォータニオンを見つけるすべての可能な方法について説明します。まずは等差数列(A.P.)と等比数列(G.P.)の基本的な定義について説明します。
等差数列 (A.P.) - 共通偏差 (d) が同じか一定である一連の数値であり、連続する 2 つの数値の差が一定であることを意味します。例: 1,3,5,7,9 | d = 2
幾何級数 (G.P.) - これは、公比 (r) が同じである一連の数値です。 , これは、前の数値に固定の数値を乗算できることを意味します。例: 3, 6, 12, 24, .... | r = 2
この問題では、インデックス 4 倍体 (a 、 b、c、d) の数を決定する必要があります。その結果、arr[a]、arr[b]、および arr[c] は A.P. にあり、arr[d]、arr[c]、および arr[b] は G.P. にあります。その中のすべての 4 タプルは決定的である必要があります。例は次のとおりです -
Input : arr[ ] = { 9, 6, 4, 2, 1, 2 } Output : 2 Explanation: Elements in the quadruples are at { 3, 2, 1, 0 } and { 5, 2, 1, 0 } indexes where quadruples are { 2, 4, 6, 9 } for both positions. Input : arr[ ] = { 2, 6, 1, 4, 2 } Output : 2 Explanation: Elements in the quadruples are at { 1, 3, 0, 2 } and { 1, 3, 4, 2 } indexes where quadruples are { 6, 4, 2, 1 } for both positions.
解決策を見つける方法
次に、解決策を見つける 2 つの異なる方法について説明します-
ブルート フォース メソッド
こここれは、4 つのネストされたループを使用してこの問題を解決し、最初の 3 つの要素が A.P. にあるかどうかを確認する簡単な方法です。 「はい」の場合、最後の 3 つの要素が GP にあるかどうかを確認します。その場合は、count 変数に 1 を加えます。ただし、この方法の 時間計算量は O(n4) であるため、非常に時間がかかります。
効率的な方法
< p>この方法では、最初に各配列要素の数を見つけ、次にこれら 2 つの要素を 2 番目と 3 番目の数値とみなし、両方のネストされたループを実行します。その後、最初の要素は arr になります。 [b] – (arr[c] – arr[b])、4 番目の要素は arr[c] * arr[c] / arr[b] になります。例
#include <bits/stdc++.h> using namespace std; int main (){ unordered_map < int, int >map; int arr[] = { 2, 6, 1, 4, 2 }; int size = sizeof (arr) / sizeof (arr[0]); // Processing every elent and increasing the count for (int a = 0; a < size; a++) map[arr[a]]++; int count = 0; // Running two nested loops for second & third element for (int b = 0; b < size; b++){ for (int c = 0; c < size; c++){ if (b == c) continue; // Decreasing the count map[arr[b]]--; map[arr[c]]--; // Finding the first element using common difference int first = arr[b] - (arr[c] - arr[b]); // Finding the fourth element using GP int fourth = (arr[c] * arr[c]) / arr[b]; if ((arr[c] * arr[c]) % arr[b] == 0){ // Increment count if not equal if (arr[b] != arr[c]) count += map[first] * map[fourth]; else count += map[first] * (map[fourth] - 1); } map[arr[b]]++; map[arr[c]]++; } } cout <<"Number of quadruples: " << count; return 0; }
出力
Number of quadruples: 2
上記のコードの説明
このコードでは、組み合わせ論を使用して、2 つのネストされた要素を使用して 2 番目と 3 番目の要素を実行します。をループし、arr[a] – (arr[c] – arr[b]) を使用して最初の要素を検索し、4 番目の要素 arr[c] * arr[c] / arr[b] を検索します。 。したがって、2 番目と 3 番目の要素を固定しておくと、A と B によってインデックス付けされた四元数の数は、最初の数値 * 4 番目の数値の数になります。上記のコードの 時間計算量 は O(n2) です。
結論
この記事では、最初の 3 項が AP にあり、最後の 3 項が GP にあるクォータニオンを見つける問題を解決しました。Bruteforce[ O( n4 ) ] と効率的な方法 [ O(n2) ] は、この問題を解決する 2 つの方法です。
この問題を解決するために C を使用しました。この問題は、Java、Python、C などの他のさまざまな言語でも解決できます。または他のプログラミング言語。
以上がC++ で書かれており、最初の 3 項が等差数列で最後の 3 項が等比数列である 4 倍体の数を求めます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









私たちは皆、2、3、5、7、8 など、数の 2 乗ではない数字を知っています。非正方形の数は N 個あり、すべての数を知ることは不可能です。そこで、この記事では、平方なしまたは非平方数と、C++ で N 番目の非平方数を見つける方法についてすべて説明します。 N 番目の非平方数 数値が整数の 2 乗である場合、その数値は完全平方と呼ばれます。完全平方数の例としては、-1issquareof14issquareof29issquareof316issquareof425issquareof5 などがあります。数値がどの整数の平方でもない場合、その数値は非正方形と呼ばれます。たとえば、最初の 15 個の非平方数は -2、3、5、6 です。

この記事では、指定された配列を k 要素分右に回転する逆転アルゴリズムについて学びます。たとえば、−Input:arr[]={4,6,2,6,43,7,3,7}、 k= 4出力:{43,7,3,7,4,6,2,6}説明:配列の各要素を 4 要素ずつ右に回転すると、{43,7,3,7,4,6,2,6} が得られます。入力:arr[]= {8 ,5,8,2,1,4,9,3},k=3出力:{4,9,3,8,5,8,2,1} 解決策を見つける

円は閉じた図形です。円上のすべての点は、円内の点から等距離にあります。中心点を円の中心といいます。点から円の中心までの距離を半径といいます。面積は、閉じた図形の寸法の範囲を定量的に表現したものです。円の面積は、円の寸法内に囲まれた面積です。円の面積を計算する式、Area=π*r*r 面積を計算するには、円の半径を入力として与え、その式を使用して面積を計算します。アルゴリズム STEP1: stdinput を使用してユーザーからの入力として半径を取得します。STEP2 : area=( を使用して円の面積を計算します。

C++ の配列構文でいくつかの一意のペアを作成するには、適切な知識が必要です。一意のペアの数を見つけるときに、指定された配列内のすべての一意のペアを数えます。つまり、各ペアが一意である必要がある場所で、考えられるすべてのペアが形成される可能性があります。例: -Input:array[]={5,5,9}Output:4説明:すべての一意のペアの数は(5,5)、(5,9)、(9,5)、および(9,9)です。入力:array[] = {5,4,3,2,2}出力:解決策を見つける16の方法 この問題を解決するには2つの方法があります。

等差数列 (AP) は、連続する 2 つの項の差が同じである一連の数値です。差は、第 1 項から第 2 項を減算して計算されます。シーケンス 5,7,9,11,13,15,... の例を使用して AP を理解しましょう。この等差級数の許容誤差 (d) は 2 です。これは、後続の各要素が前の要素と 2 だけ異なることを意味します。このシーケンスの最初の項目 (a) は 5 です。 n 番目の項を見つけるための一般式は、a{n}=a+(n-1)(d) です。 この問題では、AP が与えられ、一連の交互に符号付き正方形の合計を見つける必要があります。その系列は次のようになります。以下に示すように、a12-a22+a32-a42+a52+... より明確に理解するために例を見てみましょう。

JavaScript で等差数列を検索する方法: 1. js サンプル ファイルを作成します; 2. "function print1(start, value, endKey) {...}" を通じて print1 関数を定義します; 3. "for (let i = 0 ; i < endKey; i++) {arr.push(start + (i * value));}" 等差数列の計算ロジックを実装するだけです。

この記事では、C++ を使用して、最大値と最小値が同じ部分配列の数を求める問題を解決します。以下は問題の例です。 -入力:array={2,3,6,6,2,4,4,4}出力:12説明:{2},{3},{6},{6}, {2 }、{4}、{4}、{4}、{6,6}、{4,4}、{4,4}、および {4,4,4} は、同じ最大要素と最小要素で形成できるサブ配列です。入力: 配列 = {3, 3、1、5、

この記事では、セット上の再帰的関係を見つける方法を説明します。この問題では、数値 n と n 個の自然数のセットが与えられ、再帰関係の数を決定する必要があります。再帰的関係 - 集合 A 内のすべての 'a' について (a, a) が関係 R に属している場合、関係 R は集合 A 上の再帰的関係であると言われます。例: -Input:x=1Output:1説明:set={1},reflexiverelationsonA*A:{{1}}Input:x=2Output:4説明:set={1,2},reflexiverelationsonA*
