Python

Питон. Нужно помочь решить задачу с циклом for

Дано натуральное число N. Напишите программу для вычисления следующей суммы ряда (начиная с единицы)
((x-1)(x-3)(x-7)…(x-63) / ((x-2)(x-4)(x-8)…(x-64))
Сулхиддин Оев
Сулхиддин Оев
65 959
Лучший ответ
Денис Кунгурцев Спасибо большое
x, a, b = float(input()), 1, 1
for i in range(1, 64, 2): a, b = a * (x - i), b * (x - i - 1)
print(a / b)
Денис Кунгурцев Спасибо большое, но функцию float еще не проходили. На самом начальном уровне обучения (
Пётр Дорошенко range(1, 64, 2) в условии нет 2.4.6.8, там геометрическая 2**1.2.3.4
а N оно к чему относится?
Дима Яковлев
Дима Яковлев
25 445
Денис Кунгурцев я затупил, там задача так звучит "Дано число x. Напишите программу для вычисления следующего выражения"
Денис Кунгурцев Все перепробовал и никак не могу написать, не хватает мозгов в общем
Денис Кунгурцев Дано число x.
Напишите программу для вычисления следующего выражения

((x-1)(x-3)(x-7)…(x-63) / ((x-2)(x-4)(x-8)…(x-64))
Эти числа 2,4,8... получены вот так **

В массив arr запиши числа.
Присвой что нибудь x.
Цикл i in range.
Составь формулу счёта.
Выводи формулу счёта.
Денис Кунгурцев можешь кодом пожалуйста написать (
x = int(input('Введите x: '))
sch_1 = 1
sch_2 = 1
summ_1 = 1
summ_2 = 2
for i_1 in range(1,63+1,sch_1):
summ_1 *= x-i_1
sch_1 *= 2
for i_2 in range(2,63+2,sch_2):
summ_2 *= x-i_2
sch_2 *= 2
if summ_1 == 0 or summ_2 == 0:
print('одна из сумм равна 0')
exit(1)
summ = summ_1//summ_2
print(summ)
numerator = 1
denominator = 1
x = int(input("Введите число x: "))
for num in range(1, 7):
numerator *= (x-(2 ** num - 1))
denominator *= (x - 2 ** num)
if denominator == 0:
print("На ноль делить нельзя!")
break
print(numerator)
print(denominator)
print("Ответ:", numerator / denominator)
добрый день, подскажите почему диапазон range берется до 6?
Alex Matyxin
Alex Matyxin
154
так никто и не решил задачу ( подскажите как решить не соображу никак.
Aleksey Glebov
Aleksey Glebov
120
Сулхиддин Оев Это еще почему "так никто и не решил"? Задача простая и решение простое

в выражении заложена формула (x - (2^n - 1))/(x - 2^n)
решение от совсем начинашки:
x = int(input('Введите число X: '))
numerator = 1
denominator = 1

for num in range (1, 7):
exp1 = (x - (2**num - 1))
numerator *= exp1
print('Числитель -', numerator)
for num in range (1, 7):
exp2 = (x - 2**num)
denominator *= exp2
print('Знаменатель -', denominator)
if denominator == 0:
print('На 0 делить нельзя!')
else:
print(numerator / denominator)
Вы не правильно подчитали прогрессию. (x-1)(x-3)(x-7)…(x-63)- "1,3,7,15,31,63" а это 1+2=3+3+1=7+7+1=15+15+1=31+31+1=63