Геометрическая прогрессия в Python

Геометрическая прогрессия в Python — находим элементы и вычисляем сумму

Геометрическая прогрессия в Python

Прежде, чем мы рассмотрим практические примеры того, как вычисляется геометрическая прогрессия в 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 
Описание решения:
  1. Исходя из условия задачи, определим параметры прогрессии:
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
Описание решения
  1. При решении данной задачи предполагается вводить параметры геометрической с клавиатуры. Поэтому прежде всего, получим число элементов, значение первого элемента, а также знаменатель прогрессии и сохраним их в переменных 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    

У нас появился Telegram-канал для изучающих Python! Подписывайтесь по ссылке: «Кодим на Python! Вместе «питонить» веселее! 😉

Задачи на нахождение суммы геометрической прогрессии

Дополним рассмотренные выше задачи нахождением суммы геометрической прогрессии!

Задача №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))

Добавить комментарий