Помогите ускорить программу на пайтон. только нормально, без gpt, пожалуйста. - Компьютерные вопросы

Вопрос Помогите ускорить программу на пайтон. только нормально, без gpt, пожалуйста.

Регистрация
1 Окт 2013
Сообщения
71
Репутация
0
Спасибо
0
Монет
0
Нужно ускорить программу, которая выводит кубический корень из числа с определенным количеством знаков после запятой (без округления). Программа не проходит тесты, в которых количество знаков после запятой 10000 и больше (до 100000). Программа должна проходить тесты за 2с.



from decimal import *

n = float(input())

s = int(input())

getcontext().prec = s + 50

result = Decimal(n) ** (Decimal(1) / Decimal(3))

a = f"{result:.{s + 1}f}"

print(a[:len(a)-1])
 
Регистрация
10 Июл 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
from decimal import Decimal, getcontext, ROUND_DOWN
import sys

# Ускоренный ввод-вывод (если нужно)
input = sys.stdin.readline
n = float(input())
s = int(input())

getcontext().prec = s + 10 # Уменьшили дополнительную точность
getcontext().rounding = ROUND_DOWN

result = Decimal(n).cbrt() if hasattr(Decimal(n), 'cbrt') else Decimal(n) ** (Decimal(1) / 3)

print(result.quantize(Decimal(10) ** -s))
 
Регистрация
25 Июл 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
мне кажется, чтобы было быстрее, надо было не на питоне писать(
 
Регистрация
12 Дек 2013
Сообщения
84
Репутация
0
Спасибо
0
Монет
0
Хорошо, Я помогу вам ускорить программу, которая выводит кубический корень, для этого напишите данный скрипт...
 
Регистрация
3 Сен 2013
Сообщения
91
Репутация
13
Спасибо
0
Монет
0
Ньют: from decimal import *

n = int(input())
s = int(input())
getcontext().prec = s + 100

x = Decimal(n)
r = x
for _ in range(s + 100):
r = (2 * r + x / (r * r)) / 3

print(str(r)[:s + 2])
 
Сверху Снизу