Programa para suma de series geométricas

Una serie geométrica es una serie con una razón constante entre términos sucesivos. El primer término de la serie se denota por a y la razón común se denota por r . La serie se ve así: – a, ar, ar 2 , ar 3 , ar 4 , . . . . La tarea es encontrar la suma de tal serie. Ejemplos:

Input : a = 1
        r = 0.5
        n = 10
Output : 1.99805

Input : a = 2
        r = 2
        n = 15
Output : 65534

Una solución simple para calcular la suma de series geométricas. 

C++

// A naive solution for calculating sum of
// geometric series.
#include<bits/stdc++.h>
using namespace std;
 
// function to calculate sum of
// geometric series
float sumOfGP(float a, float r, int n)
{
    float sum = 0;
    for (int i = 0; i < n; i++)
    {
        sum = sum + a;
        a = a * r;
    }
    return sum;
}
 
// driver function
int main()
{
    int a = 1; // first term
    float r = 0.5; // common ratio
    int n = 10; // number of terms
 
    cout << sumOfGP(a, r, n) << endl;
    return 0;
}

Java

// A naive solution for calculating sum of
// geometric series.
import java.io.*;
 
class GFG{
     
    // function to calculate sum of
    // geometric series
    static float sumOfGP(float a, float r, int n)
    {
        float sum = 0;
        for (int i = 0; i < n; i++)
        {
            sum = sum + a;
            a = a * r;
        }
        return sum;
    }
 
    // driver function
    public static void main(String args[])
    {
        int a = 1; // first term
        float r = (float)(1/2.0) ;// common ratio
        int n = 10 ; // number of terms
         
        System.out.printf("%.5f",(sumOfGP(a, r, n)));
    }
     
}
 
//This code is contributed by Nikita Tiwari

Python

# A naive solution for calculating sum of
# geometric series.
 
# function to calculate sum of
# geometric series
def sumOfGP(a, r, n) :
     
    sum = 0
    i = 0
    while i < n :
        sum = sum + a
        a = a * r
        i = i + 1
     
    return sum
     
#driver function
 
a = 1 # first term
r = (float)(1/2.0) # common ratio
n = 10 # number of terms
         
print("%.5f" %sumOfGP(a, r, n)),
     
# This code is contributed by Nikita Tiwari

C#

// A naive solution for calculating
// sum of geometric series.
using System;
 
class GFG {
     
    // function to calculate
    // sum of geometric series
    static float sumOfGP(float a,
                         float r,
                         int n)
    {
        float sum = 0;
        for (int i = 0; i < n; i++)
        {
            sum = sum + a;
            a = a * r;
        }
        return sum;
    }
 
    // Driver Code
    static public void Main ()
    {
         
        // first term
        int a = 1;
         
        // common ratio
        float r = (float)(1/2.0) ;
         
        // number of terms
        int n = 10 ;
         
        Console.WriteLine((sumOfGP(a, r, n)));
    }
     
}
 
// This code is contributed by Ajit.

PHP

<?php
// A naive solution for calculating
// sum of geometric series.
 
// function to calculate sum 
// of geometric series
function sumOfGP($a, $r, $n)
{
    $sum = 0;
    for ($i = 0; $i < $n; $i++)
    {
        $sum = $sum + $a;
        $a = $a * $r;
    }
    return $sum;
}
 
// Driver Code
 
// first term
$a = 1;
 
// common ratio
$r = 0.5;
 
// number of terms
$n = 10;
 
echo(sumOfGP($a, $r, $n));
 
// This code is contributed by Ajit.
?>

Producción :

1.99805

Complejidad de tiempo: O(n)

Espacio Auxiliar: O(1)

Una solución eficiente para resolver la suma de series geométricas donde el primer término es a y la razón común es r es mediante la fórmula: – suma de series = a(1 – r n )/(1 – r). Donde r = T2/T1 = T3/T2 = T4/T3. . . y T1, T2, T3, T4. . . ,Tn son el primero, segundo, tercero, . . . ,n-ésimos términos respectivamente. Por ejemplo: la serie es 2, 4, 8, 16, 32, 64, . . . hasta 15 elementos. En la serie anterior, encuentre la suma de los primeros 15 elementos donde el primer término a = 2 y la razón común r = 4/2 = 2 o = 8/4 = 2 Luego, sum = 2 * (1 – 2 15 ) / (1 – 2). suma = 65534 

C++

// An Efficient solution to solve sum of
// geometric series.
#include<bits/stdc++.h>
using namespace std;
 
// function to calculate sum of
// geometric series
float sumOfGP(float a, float r, int n)
{
    // calculating and storing sum
    return (a * (1 - pow(r, n))) / (1 - r);
}
 
// driver code
int main()
{
    float a = 2; // first term
    float r = 2; // common ratio
    int n = 15; // number of terms
 
    cout << sumOfGP(a, r, n);
    return 0;
}

Java

// An Efficient solution to solve sum of
// geometric series.
import java.math.*;
 
class GFG{
     
    // function to calculate sum of
    // geometric series
    static float sumOfGP(float a, float r, int n)
    {
        // calculating and storing sum
        return (a * (1 - (int)(Math.pow(r, n)))) /
                                            (1 - r);
    }
 
    // driver code
    public static void main(String args[])
    {
        float a = 2; // first term
        float r = 2; // common ratio
        int n = 15; // number of terms
 
        System.out.println((int)(sumOfGP(a, r, n)));
    }
}
 
//This code is contributed by Nikita Tiwari.

Python

# An Efficient solution to solve sum of
# geometric series.
 
# function to calculate sum of
# geometric series
def sumOfGP( a, r, n) :
     
    # calculating and storing sum
    return (a * (1 - pow(r, n))) / (1 - r)
     
     
# driver code
a = 2 # first term
r = 2 # common ratio
n = 15 # number of terms
 
print sumOfGP(a, r, n)
 
# This code is contributed by Nikita Tiwari.

C#

// C# program to An Efficient solution
// to solve sum of geometric series.
using System;
 
class GFG {
     
    // function to calculate sum of
    // geometric series
    static float sumOfGP(float a, float r, int n)
    {
        // calculating and storing sum
        return (a * (1 - (int)(Math.Pow(r, n)))) /
                                       (1 - r);
    }
 
    // Driver Code
    public static void Main()
    {
        float a = 2; // first term
        float r = 2; // common ratio
        int n = 15; // number of terms
 
        Console.Write((int)(sumOfGP(a, r, n)));
    }
}
 
// This code is contributed by Nitin Mittal.

PHP

<?php
// An Efficient solution to solve
// sum of geometric series.
 
// function to calculate sum
// of geometric series
function sumOfGP($a, $r, $n)
{
    // calculating and storing sum
    return ($a * (1 - pow($r, $n))) /
                         (1 - $r);
}
 
// Driver Code
 
// first term
$a = 2;
 
// common ratio
$r = 2;
 
// number of terms
$n = 15;
 
echo(sumOfGP($a, $r, $n));
 
// This code is contributed by Ajit.
?>

Producción :

65534

Complejidad de tiempo: depende de la implementación de la función pow() en C/C++. En general, podemos calcular potencias enteras en tiempo O(Log n)

Complejidad espacial : O (1) ya que usa variables constantes

Este artículo es una contribución de Dharmendra kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *