
Прежде, чем мы рассмотрим практические примеры того, как вычисляется геометрическая прогрессия в Python, сформулируем математическое определение геометрической последовательности.
Геометрическая прогрессия — это последовательность чисел, в которой текущий элемент, отличный от первого, получается путем умножения предыдущего элемента на константу, которую называют знаменателем геометрической прогрессии.
bn = bn-1*q, где q — знаменатель прогрессии.
Например, в последовательности: 1 4 16 64 256 .. каждый элемент, кроме первого, равен произведению предыдущего элемента на 4.
Таким образом, для определения любого элемента геометрической прогрессии, нам достаточно знать значение первого элемента и знаменатель прогрессии. Поэтому при написании программы, вычисляющей элементы геометрической прогрессии в Python, в качестве входных данных мы будем задавать значение первого элемента и знаменатель прогрессии.
Для примера рассмотрим несколько похожих задач на нахождение элементов и вычисление суммы геометрической прогрессии в Python!
Задачи на вычисление элементов геометрической прогрессии
Задача №1_1:
Выведите на экран 5 первых элементов геометрической прогреcсии. Первый элемент прогрессии b_first = 1, знаменатель прогрессии q = 7.
Полный код с решением задачи:
# определим число элементов прогрессии
n = 5
# первый элемент прогрессии
b_first = 1
# знаменатель прогрессии
q = 7
# выведем первый элемент прогрессии
print(b_first)
# в переменной b_prev будем хранить значение предыдущего элемента
# поместим в переменную b_prev значение первого элемента
b_prev = b_first
# Для каждого элемента прогрессии, начиная с первого:
for i in range(1,n):
# вычислим значение элемента,
b_cur = b_prev*q
# выведем его на экран,
print(b_cur)
# сохраним значение текущего элемента в переменной b_prev
b_prev = b_cur
Полученный результат:
1 7 49 343 2401
Описание решения:
- Исходя из условия задачи, определим параметры прогрессии:
n = 5
b_first = 1
q=7
2. После этого выведем на экран значение первого элемента:
print(b_first)
3. Вывод каждого последующего элемента прогрессии будем осуществлять в цикле for. Значение текущего элемента прогрессии будем вычислять, как произведение предыдущего элемента на знаменатель прогрессии. После вывода текущего элемента на экран, будем сохранять его значение в переменной b_prev:
for i in range(1,n):
b_cur = b_prev*q
print(b_cur)
b_prev = b_cur
Задача №1_2
Выведите на экран n первых элементов геометрической прогресии, начальные параметры которой (значение первого элемента и знаменатель), а также количество элементов n, вводятся с клавиатуры.
Полный код с решением задачи:
# Запросим ввод параметров прогрессии с клавиатуры
n = int(input('Введите число элементов прогрессии: '))
b_first = int(input('Введите первый элемент прогрессии: '))
q = int(input('Введите знаменатель прогрессии: '))
# Выведем первый элемент прогрессии
print(b_first)
# в переменной b_prev будем хранить значение предыдущего элемента
# поместим в переменную b_prev значение первого элемента
b_prev = b_first
# Для каждого элемента прогрессии, начиная с первого:
for i in range(1,n):
# вычислим значение элемента,
b_cur = b_prev*q
# выведем его на экран,
print(b_cur)
# сохраним значение текущего элемента в переменной b_prev
b_prev = b_cur
Полученный результат:
Введите число элементов прогрессии: 4 Введите первый элемент прогрессии: 20 Введите знаменатель прогрессии: 3 20 60 180 540
Описание решения
- При решении данной задачи предполагается вводить параметры геометрической с клавиатуры. Поэтому прежде всего, получим число элементов, значение первого элемента, а также знаменатель прогрессии и сохраним их в переменных n, b_first и q соответственно:
# Запросим ввод параметров прогрессии с клавиатуры
n = int(input('Введите число элементов прогрессии: '))
b_first = int(input('Введите первый элемент прогрессии: '))
q = int(input('Введите знаменатель прогрессии: '))
2. Поле этого выведем на экран значение первого элемента и сохраним его значение в переменной b_prev:
# Выведем первый элемент прогрессии
print(b_first)
# поместим в переменную b_prev значение первого элемента
b_prev = b_first
3. Значения остальных элементов прогрессии будем вычислять и выводить на экран в цикле for. После вывода каждого элемента, будем передавать его значение переменной b_prev:
# Для каждого элемента прогрессии, начиная с первого:
for i in range(1,n):
# вычислим значение элемента,
b_cur = b_prev*q
# выведем его на экран,
print(b_cur)
# сохраним значение текущего элемента в переменной b_prev
b_prev = b_cur

Задачи на нахождение суммы геометрической прогрессии
Дополним рассмотренные выше задачи нахождением суммы геометрической прогрессии!
Задача №2_1
Выведите на экран 5 первых элементов геометрической прогрессии c параметрами: первый элемент прогрессии b1 = 1, знаменатель q = 7. Посчитайте сумму элементов геометрической прогрессии.
Полный код с решением задачи:
# определим число элементов прогрессии
n = 5
# первый элемент прогрессии
b_first = 1
# знаменатель прогрессии
q=7
# выведем первый элемент прогрессии
print(b_first)
# в переменной b_prev будем хранить значение предыдущего элемента
# поместим в переменную b_prev значение первого элемента
b_prev = b_first
# В переменной summa сохраним значение первого элемента прогрессии
summa = b_first
# Для каждого элемента прогрессии, начиная с первого:
for i in range(1,n):
# вычислим значение элемента,
b_cur = b_prev*q
# выведем его на экран,
print(b_cur)
# увеличим сумму прогрессии на значение текущего элемента
summa = summa + b_cur
# сохраним значение текущего элемента в переменной b_prev
b_prev = b_cur
# Выведем получившееся значение суммы на экран
print('Сумма элементов геометрической прогрессии = ', summa)
Полученный результат:
1 7 49 343 2401 Сумма элементов геометрической прогрессии = 2801
Пояснения по решению:
Для решения данной задачи использовался приведенный выше код из задачи №1_2. Процесс вычисления элементов прогрессии и вывода их на экран остался прежним. Однако для вычисления суммы геометрической прогрессии в код были добавлены новые строки:
1. summa = b_first — сохраняем в переменной суммы значение первого элемента прогрессии:
n = 10
b_first = 1
q=7
print(b_first)
b_prev = b_first
# В переменной summa сохраним значение первого элемента прогрессии
summa = b_first
2. В цикле for после вычисления каждого последующего элемента прогрессии, увеличиваем сумму на его значение:
for i in range(1,n):
b_cur = b_prev*q
print(b_cur)
# увеличим сумму прогрессии на значение текущего элемента
summa = summa + b_cur
b_prev = b_cur
3. В заключение добавим вывод суммы геометрической прогрессии на экран:
# Выведем получившееся значение суммы на экран
print('Сумма элементов геометрической прогрессии = ', summa)
Задача №2_2
Выведите на экран n первых элементов геометрической прогрессии, начальные параметры которой (значение первого элемента и знаменатель), а также количество элементов n, вводятся с клавиатуры. Посчитайте сумму элементов геометрической прогрессии.
Полный код с решением задачи:
# Запросим ввод параметров прогрессии с клавиатуры
n = int(input('Введите число элементов прогрессии: '))
b_first = int(input('Введите первый элемент прогрессии: '))
q = int(input('Введите знаменатель прогрессии: '))
# Выведем первый элемент прогрессии
print(b_first)
# в переменной b_prev будем хранить значение предыдущего элемента
# поместим в переменную b_prev значение первого элемента
b_prev = b_first
# В переменной summa сохраним значение первого элемента прогрессии
summa = b_prev
# Для каждого элемента прогрессии, начиная с первого:
for i in range(1,n):
# вычислим значение элемента,
b_cur = b_prev*q
# выведем его на экран,
print(b_cur)
# увеличим сумму прогрессии на значение текущего элемента
summa = summa+b_cur
# сохраним значение текущего элемента в переменной b_prev
b_prev = b_cur
# Выведем получившееся значение суммы на экран
print('Сумма элементов геометрической прогрессии = ', summa)
Полученный результат:
Введите число элементов прогрессии: 4 Введите первый элемент прогрессии: 8 Введите знаменатель прогрессии: 3 8 24 72 216 Сумма элементов геометрической прогрессии = 320
Пояснения по решению:
В данной задаче код для вычисления элементов прогрессии и вывода их на экран, взят из рассмотренной выше задачи №1_2. Однако, для вычисления суммы геометрической прогрессии в код были добавлены новые строки:
1. Прежде всего, необходимо определить начальное значение переменной summa. Так как первый элемент прогрессии вводится с клавиатуры, то можно сразу передать это значение переменной summa:
n = int(input('Введите число элементов прогрессии: '))
b_first = int(input('Введите первый элемент прогрессии: '))
q = int(input('Введите знаменатель прогрессии: '))
print(b_first)
b_prev = b_first
# В переменной summa сохраним значение первого элемента прогрессии
summa = b_prev
2. После этого добавим в цикл for операцию увеличения суммы прогрессии после каждого вновь вычисленного элемента:
for i in range(1,n):
b_cur = b_prev*q
print(b_cur)
# увеличим сумму прогрессии на значение текущего элемента
summa = summa+b_cur
b_prev = b_cur
3. Дополним код выводом на экран полученного значения геометрической прогрессии:
# Выведем получившееся значение суммы на экран
print('Сумма элементов геометрической прогрессии = ', summa)
И в заключение, решим задачу на нахождение суммы элементов геометрической прогрессии без вывода ее элементов, с помощью формулы:
Sn = b1*(qn-1) / (q-1)
Задача №2_3
Написать функцию, вычисляющую сумму n-первых элементов геометрической прогрессии по формуле: Sn = b1*(qn-1) / (q-1). Ввод параметров прогрессии должен осуществляться с клавиатуры.
Полный код с решением задачи:
# Функция для вычисления суммы геометрической прогрессии
def find_sum(b1, q, n):
summa = (b1*(q**n-1))/(q-1)
return(summa)
# запрашиваем ввод параметров прогрессии с клавиатуры
b1 = int(input('Введите первый элемент прогрессии: '))
q = int(input('Введите знаменатель прогрессии: '))
n = int(input('Введите число элементов прогрессии: '))
# вызываем функцию find_sum для вычисления суммы геометрической прогрессии
summa = find_sum(b1, q, n)
# выводим полученное значение на экран
print('Сумма элементов прогрессии = ', int(summa))
Полученный результат:
Введите первый элемент прогрессии: 1 Введите знаменатель прогрессии: 3 Введите число элементов прогрессии: 5 Сумма элементов прогрессии = 121
Пояснения по решению:
Функция для вычисления суммы геометрической прогрессии find_sum() принимает в качестве аргументов значение первого элемента прогрессии b1, знаменатель прогрессии q, а также число элементов прогрессии n. Функция вычисляет сумму прогрессии по формуле summa = (b1*(qn-1))/(q-1) и возвращает полученное значение:
def find_sum(b1, q, n):
summa = (b1*(q**n-1))/(q-1)
return(summa)
Для того, чтобы осуществить вызов функции find_sum(), нужно получить параметры прогрессии и передать их функции в качестве аргументов:
# запрашиваем ввод параметров прогрессии с клавиатуры
b1 = int(input('Введите первый элемент прогрессии'))
q = int(input('Введите знаменатель прогрессии'))
n = int(input('Введите число элементов прогрессии'))
# вызываем функцию find_sum для вычисления суммы геометрической прогрессии
summa = find_sum(b1, q, n)
Полученное значение summa выводим на экран:
print('Сумма элементов прогрессии = ', int(summa))