Programa para calcular la suma de una Sucesión Aritmético-Geométrica Infinita

Dados tres números enteros A , D y R que representan el primer término, la diferencia común y la razón común de una progresión aritmética-geométrica infinita , la tarea es encontrar la suma de la progresión aritmética-geométrica infinita dada tal que el valor absoluto de R siempre es menor que 1 .

Ejemplos:

Entrada: A = 0, D = 1, R = 0,5
Salida: 0,666667

Entrada: A = 2, D = 3, R = -0,3
Salida: 0,549451

Enfoque: Una sucesión aritmético-geométrica es el resultado de la multiplicación término por término de la serie de progresión geométrica con los términos correspondientes de una serie de progresión aritmética . La serie está dada por:

a, (a + d) * r, (a + 2 * d) * r 2 , (a + 3 * d) * r 3 , …, [a + (N − 1) * d] * r (N − 1) .

El término N de la Progresión Aritmético -Geométrica viene dado por:

=> T_N = [a + (N - 1) * d] * (b * r^{n - 1})

La suma de la Progresión Aritmético-Geométrica viene dada por:

=>S_∞ = \frac{a}{(1 - r)} + ​​\frac{d * r}{(1 - r)^2}

donde, |r| < 1.

A continuación se muestra la implementación del enfoque anterior:

C++

// C++ program for the above approach
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the sum of the
// infinite AGP
void sumOfInfiniteAGP(double a, double d,
                      double r)
{
    // Stores the sum of infinite AGP
    double ans = a / (1 - r)
                 + (d * r) / pow((1-r),2);
 
    // Print the required sum
    cout << ans;
}
 
// Driver Code
int main()
{
    double a = 0, d = 1, r = 0.5;
    sumOfInfiniteAGP(a, d, r);
 
    return 0;
}
// Correction done by Yogesh0903

Java

import java.lang.Math;
// Java program for the above approach
class GFG{
 
// Function to find the sum of the
// infinite AGP
static void sumOfInfiniteAGP(double a, double d,
                             double r)
{
     
    // Stores the sum of infinite AGP
    double ans = a / (1 - r) +
           (d * r) / Math.pow((1-r),2);
 
    // Print the required sum
    System.out.print(ans);
}
 
// Driver Code
public static void main(String[] args)
{
    double a = 0, d = 1, r = 0.5;
     
    sumOfInfiniteAGP(a, d, r);
}
}
 
// This code is contributed by 29AjayKumar
// Correction done by Yogesh0903

Python3

# Python3 program for the above approach
 
# Function to find the sum of the
# infinite AGP
def sumOfInfiniteAGP(a, d, r):
   
    # Stores the sum of infinite AGP
    ans = a / (1 - r) + (d * r) / (1 - r)**2;
 
    # Print the required sum
    print (round(ans,6))
 
# Driver Code
if __name__ == '__main__':
    a, d, r = 0, 1, 0.5
    sumOfInfiniteAGP(a, d, r)
 
# This code is contributed by mohit kumar 29.
# Correction done by Yogesh0903

C#

// C# program for the above approach
using System;
class GFG
{
   
    // Function to find the sum of the
    // infinite AGP
    static void sumOfInfiniteAGP(double a, double d,
                                 double r)
    {
       
        // Stores the sum of infinite AGP
        double ans = a / (1 - r) + (d * r) / Math.Pow((1-r),2);
 
        // Print the required sum
        Console.Write(ans);
    }
 
    // Driver Code
    public static void Main()
    {
        double a = 0, d = 1, r = 0.5;
        sumOfInfiniteAGP(a, d, r);
    }
}
 
// This code is contributed by ukasp.
// Correction done by Yogesh0903

Javascript

<script>
        // Javascript program for the above approach
 
        // Function to find the sum of the
        // infinite AGP
        function sumOfInfiniteAGP(a, d, r) {
 
            // Stores the sum of infinite AGP
            let ans = a / (1 - r) +
                (d * r) / Math.pow((1-r),2);
 
            // Print the required sum
            document.write(ans)
        }
 
        // Driver Code
 
        let a = 0, d = 1, r = 0.5;
 
        sumOfInfiniteAGP(a, d, r);
 
        // This code is contributed by Hritik
    </script>
Producción

0.666667

Complejidad Temporal: O(1)
Espacio Auxiliar: O(1), ya que no se ha tomado ningún espacio extra.

Publicación traducida automáticamente

Artículo escrito por sam_2200 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *