Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите задача на Phyton

n1 Ученик (156), на голосовании 2 дня назад
Необходимо найти сумму квадратов всех целых чисел от a
до b
включительно.
Голосование за лучший ответ
Ярослав Лелеков Знаток (438) 1 месяц назад
def sum_of_squares(a, b):
return sum(i**2 for i in range(a, b + 1))

# Пример использования:
a = 1
b = 5
result = sum_of_squares(a, b)
print(f"Сумма квадратов чисел от {a} до {b} равна {result}")
n1Ученик (156) 1 месяц назад
Братиш не помогло
n1Ученик (156) 1 месяц назад
Ярослав Лелеков Знаток (438) n1, у меня все работает
n1Ученик (156) 1 месяц назад
А братишка мне без текста нужно спс щас исправлю
Ярослав Лелеков Знаток (438) n1, окей
Ай болит Ученик (157) 1 месяц назад
S(n) = n * (n + 1) * (2n + 1) / 6

- Затем находим сумму квадратов от 1 до b и от 1 до (a-1):
S(a, b) = S(b) - S(a-1)

Где S(a, b) — сумма квадратов от a до b.
Пример:
Если a = 2 и b = 4:
- Сумма квадратов от 1 до 4:
S(4) = 4 * (4 + 1) * (2 * 4 + 1) / 6 = 4 * 5 * 9 / 6 = 30

- Сумма квадратов от 1 до 1:
S(1) = 1 * (1 + 1) * (2 * 1 + 1) / 6 = 1

- Теперь вычтем:
S(2, 4) = S(4) - S(1) = 30 - 1 = 29

Таким образом, сумма квадратов от 2 до 4 включительно равна 29.
Если у вас есть конкретные значения a и b, я могу помочь выполнить расчеты!
Ай болитУченик (157) 1 месяц назад
Возможно не так понял
n1Ученик (156) 1 месяц назад
Ты понял не совсем так, задача не арефмитическая а на phyton
Ксения Райт Высший разум (105655) 1 месяц назад
Я бы сделала сравнение вычислений
этой суммы по формуле и циклом:
 from time import time 
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')
А раз такие результаты, то надо оставить только что-то наиболее рациональное:
 a, b = map(int, input('a b » ').split()) 
if a > b: a, b = b, a
print((b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6)
Ксения РайтВысший разум (105655) 1 месяц назад
Хм, кода для сравнения в ответе почему-то не видно! Тогда ещё раз:
 from time import time 
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')
Ксения РайтВысший разум (105655) 1 месяц назад
from time import time
while True:
try:
a, b = map(int, input('a b » ').split())
if a > b: a, b = b, a
t = time()
s = (b * (b + 1) * (2 * b + 1) - a * (a - 1) * (2 * a - 1)) // 6
T = time()
c = T - t
S = 0
for i in range(a, b + 1): S += i**2
τ = time()
d = τ - T
print('По формуле: %d (%f)' % (s, c))
print('Циклом: %d (%f)' % (S, d))
print('Циклом медленнее в %f раз' % (d / c))
except: print('Ошибка ввода!')
ПапаВысший разум (151205) 1 месяц назад
Дурачкам бесполезно объяснять, что 2 секунды - это медленно. Он за это время всё равно успевает только одну кнопку на клавиатуре нажать, поэтому ему неважно. А масштабировать - не, не слышал.
Похожие вопросы