Una secuencia de números se llama progresión geométrica si la razón de dos términos consecutivos es siempre la misma. En términos simples, significa que el siguiente número en la serie se calcula multiplicando un número fijo por el número anterior en la serie. Por ejemplo, 2, 4, 8, 16 es un GP porque la relación de dos términos consecutivos cualesquiera en la serie (diferencia común) es igual (4/2 = 8/4 = 16/8 = 2).
Hecho sobre la progresión geométrica:
- Término inicial: En una progresión geométrica, el primer número se llama término inicial.
- Razón común: La razón entre un término en la secuencia y el término anterior se llama “razón común”.
- El comportamiento de una sucesión geométrica depende del valor de la razón común. Si la razón común es:
- Positivo, los términos serán todos del mismo signo que el término inicial.
- Negativo, los términos se alternarán entre positivo y negativo.
- Mayor que 1, habrá un crecimiento exponencial hacia el infinito positivo o negativo (según el signo del término inicial).
- 1, la progresión es una secuencia constante.
- Entre -1 y 1 pero no cero, habrá un decaimiento exponencial hacia cero.
- -1, la progresión es una secuencia alterna.
- Menos de -1, para los valores absolutos hay un crecimiento exponencial hacia el infinito (sin signo), debido a la alternancia del signo.
Fórmula del n- ésimo término de una Progresión Geométrica:
Si ‘a’ es el primer término y ‘r’ es la razón común. Así, la fórmula explícita es
Fórmula de la suma del enésimo término de la Progresión Geométrica:
¿Cómo comprobamos si una serie es una progresión geométrica o no?
Encontremos la razón de los términos consecutivos, entonces podemos decir que la razón de los términos consecutivos de las sucesiones dadas es 13 o una constante. Así que esta secuencia está formando una progresión geométrica.
C++
// C++ program to check if a given array // can form geometric progression #include <bits/stdc++.h> using namespace std; bool is_geometric(int arr[], int n) { if (n == 1) return true; // Calculate ratio int ratio = arr[1] / (arr[0]); // Check the ratio of the remaining for (int i = 1; i < n; i++) { if ((arr[i] / (arr[i - 1])) != ratio) { return false; } } return true; } // Driven Program int main() { int arr[] = { 2, 6, 18, 54 }; int n = sizeof(arr) / sizeof(arr[0]); (is_geometric(arr, n)) ? (cout << "True" << endl) : (cout << "False" << endl); return 0; }
Java
// Java program to check if a given array // can form geometric progression import java.util.Arrays; class GFG { // function to check series is // geometric progression or not static boolean is_geometric(int arr[], int n) { if (n == 1) return true; // Calculate ratio int ratio = arr[1] / (arr[0]); // Check the ratio of the remaining for (int i = 1; i < n; i++) { if ((arr[i] / (arr[i - 1])) != ratio) { return false; } } return true; } // driver code public static void main(String[] args) { int arr[] = { 2, 6, 18, 54 }; int n = arr.length; if (is_geometric(arr, n)) System.out.println("True"); else System.out.println("False"); } }
Python3
def is_geometric(li): if len(li) <= 1: return True # Calculate ratio ratio = li[1]/float(li[0]) # Check the ratio of the remaining for i in range(1, len(li)): if li[i]/float(li[i-1]) != ratio: return False return True print(is_geometric([2, 6, 18, 54]))
C#
// C# program to check if a given array // can form geometric progression using System; class Geeks { static bool is_geometric(int[] arr, int n) { if (n == 1) return true; // Calculate ratio int ratio = arr[1] / (arr[0]); // Check the ratio of the remaining for (int i = 1; i < n; i++) { if ((arr[i] / (arr[i - 1])) != ratio) { return false; } } return true; } // Driven Program public static void Main(String[] args) { int[] arr = new int[] { 2, 6, 18, 54 }; int n = arr.Length; if (is_geometric(arr, n)) Console.WriteLine("True"); else Console.WriteLine("False"); } }
PHP
<?php function is_geometric($arr) { if (sizeof($arr) <= 1) return True; # Calculate ratio $ratio = $arr[1]/$arr[0]; # Check the ratio of the remaining for($i=1; $i<sizeof($arr); $i++) { if (($arr[$i]/($arr[$i-1])) != $ratio) { return "Not a geometric sequence"; } } return "Geometric sequence"; } $my_arr1 = array(2, 6, 18, 54); print_r(is_geometric($my_arr1)."\n"); print_r(is_geometric($my_arr2)."\n"); ?>
Javascript
<script> // Javascript program to check if a given array // can form geometric progression // Function to check series is // geometric progression or not function is_geometric(arr, n) { if (n == 1) return true; // Calculate ratio let ratio = parseInt(arr[1] / (arr[0])); // Check the ratio of the remaining for(let i = 1; i < n; i++) { if (parseInt((arr[i] / (arr[i - 1]))) != ratio) { return false; } } return true; } // Driver code let arr = [ 2, 6, 18, 54 ]; let n = arr.length; (is_geometric(arr, n)) ? (document.write("True")) : (document.write("False")); // This code is contributed by souravmahato348 </script>
Producción:
True
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(1)
Programa Básico relacionado con la Progresión Geométrica
- Programa para imprimir GP (Progresión Geométrica)
- Programa para suma de series geométricas
- Encuentra el número que falta en Progresión Geométrica
- Programa para el N-ésimo término de la serie Progresión Geométrica
- Encuentre todos los trillizos en una array ordenada que forma la progresión geométrica
- Eliminar un número de una array para convertirlo en Progresión geométrica
- Número mínimo de operaciones para convertir una secuencia dada en una Progresión Geométrica
- Número de subsecuencias GP (progresión geométrica) de tamaño 3
Más problemas relacionados con la progresión geométrica
- Encuentra la suma de las series 3, -6, 12, -24 . . . hasta N términos
- Encuentra la suma de la serie 2, 5, 13, 35, 97
- Área de cuadrados formados al unir puntos medios repetidamente
- Progresión geométrica más larga
¡Artículos recientes sobre la progresión geométrica!
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