目次
解決策を見つける方法
ブルート フォース メソッド
効率的な方法
出力
上記のコードの説明
結論
ホームページ バックエンド開発 C++ C++ で書かれており、最初の 3 項が等差数列で最後の 3 項が等比数列である 4 倍体の数を求めます。

C++ で書かれており、最初の 3 項が等差数列で最後の 3 項が等比数列である 4 倍体の数を求めます。

Aug 30, 2023 pm 02:09 PM
等差数列 Cプログラミング クワッドの数 幾何学的配列

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

C++ を使用して N 番目の非平方数を見つけるコードを作成する C++ を使用して N 番目の非平方数を見つけるコードを作成する Aug 30, 2023 pm 10:41 PM

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

C++で書かれた配列の右回転のための反転アルゴリズム C++で書かれた配列の右回転のための反転アルゴリズム Sep 08, 2023 pm 08:17 PM

この記事では、指定された配列を 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} 解決策を見つける

Cプログラミングで円の面積を求める Cプログラミングで円の面積を求める Aug 25, 2023 pm 10:57 PM

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

C++ を使用して配列内の一意のペアの数を見つける C++ を使用して配列内の一意のペアの数を見つける Sep 07, 2023 am 11:53 AM

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

交互に配置された符号の等差数列の合計を求めます。 交互に配置された符号の等差数列の合計を求めます。 Sep 16, 2023 pm 05:01 PM

等差数列 (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 で等差数列を見つける方法 JavaScript で等差数列を見つける方法 Feb 10, 2023 am 09:56 AM

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

C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。 C++ を使用して、同じ最小値と最大値を持つ部分配列の数を見つけるコードを作成します。 Aug 25, 2023 pm 11:33 PM

この記事では、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、

C++ で書かれており、セット上の再帰関係の数を見つけます。 C++ で書かれており、セット上の再帰関係の数を見つけます。 Aug 26, 2023 pm 08:17 PM

この記事では、セット上の再帰的関係を見つける方法を説明します。この問題では、数値 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*

See all articles