gpt4 book ai didi

Python3.3 : Square-root optimization

转载 作者:行者123 更新时间:2023-11-28 21:25:05 24 4
gpt4 key购买 nike

这里是Python3.3的代码:

import sys, re, math
str1 = str(sys.stdin.readlines())
Data = re.findall('\\b\\d+\\b', str1)

for i in reversed (Data):
print('%.4f' % math.sqrt(float(i)))

如您所见,该程序从输入中获取数据(多行随机字符串),并搜索该字符串包含的每个数字。之后只返回它找到的每个数字的平方根。

嗯,算法可行,但速度不够快,我不知道如何优化它。请帮助我。我需要做什么来优化上面的代码?

最佳答案

这是一个否定的结果。我尝试使用一些技巧来让它更快,但它只快了一点点。

import sys, re, math

def find_numbers(f):
for line in f:
for word in line.split():
if word.isdigit():
yield float(word)

lst = list(find_numbers(sys.stdin))
lst.reverse()
for x in lst:
print('%.4f' % math.sqrt(x))

我认为颠倒列表可能会使速度变慢,但当我只打印数字而不颠倒时并没有太大区别。

Python 最快的解决方案是在 PyPy 中运行上述代码。

这不是一个非常困难的问题,如果您需要速度,您可能想用 C 代码编写一个解决方案。 C 代码将尽可能快地解决这个问题。

关于Python3.3 : Square-root optimization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com