Питон задача, помогите решить ещё одну пожалуйста!
Дан массив ненулевых целых чисел размера N, не содержащий одинаковых чисел. Проверить, образуют ли его элементы геометрическую прогрессию (см. Задание Задание4). Если образуют, то вывести знаменатель прогрессий, если нет-вывести 0.
Вот пример кода Python, который проверяет, образует ли массив ненулевых целых чисел геометрическую прогрессию или нет:
def is_geometric(arr):
n = len(arr)
if n < 2:
return False
ratio = arr[1] / arr[0]
for i in range(2, n):
if arr[i] / arr[i-1] != ratio:
return False
return ratio
# Example usage:
arr = [2, 4, 8, 16, 32]
ratio = is_geometric(arr)
if ratio:
print("The array forms a geometric progression with ratio", ratio)
else:
print("The array does not form a geometric progression.")
В этом примере мы определяем функцию is_geometric, которая принимает массив в качестве аргумента и проверяет, образуют ли его элементы геометрическую прогрессию. Если да, то функция возвращает отношение этой прогрессии. В противном случае она возвращает False.
Сначала функция проверяет, что массив состоит как минимум из двух элементов (поскольку для геометрической прогрессии требуется как минимум два члена). Затем она вычисляет отношение второго и первого элементов и проверяет, равен ли этому отношению каждый последующий элемент, деленный на предыдущий. Если какая-либо пара соседних элементов имеет другое отношение, функция возвращает False.
Чтобы использовать эту функцию, вы можете передать свой массив в качестве аргумента и проверить возвращаемое значение. Если оно не False, это означает, что массив образует геометрическую прогрессию, а значение является знаменателем этой прогрессии. Если значение равно False, это означает, что массив не образует геометрическую прогрессию.
Вот код на Python, который решает данную задачу:
def is_geometric_progression(arr):
n = len(arr)
if n < 2:
return 0
ratio = arr[1] / arr[0]
for i in range(2, n):
if arr[i] / arr[i-1] != ratio:
return 0
return ratio
Пример использования функции:
arr = [2, 4, 8, 16, 32]
result = is_geometric_progression(arr)
if result == 0:
print("Массив не образует геометрическую прогрессию")
else:
print(f"Знаменатель геометрической прогрессии равен {result}")