首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大数的土木

大数的土木
EN

Stack Overflow用户
提问于 2022-02-01 16:15:13
回答 1查看 55关注 0票数 1

我想计算一些大数的几何图形。问题是大数乘积的结果是溢出。示例:

代码语言:javascript
复制
a = array([168116745,168117411,168117729,168118170,168118695,168119286,168119610])
print(a.prod())
print(a.prod()**(1.0/len(a)))

输出

代码语言:javascript
复制
1947451320
21.235703778668626

另一方面,可以使用sqrt(a.b) = sqrt(a).sqrt(b)规则。因此,我可以写

代码语言:javascript
复制
n = 1.0/len(a)
temp = []
for i in len(a):
    temp.append(i**n)

所以,我有部分数,我可以找到temp元素的乘积。我正在寻找一个基于现有库的更高效和更小的代码。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-01 16:18:26

一种解决办法是使用对数。试试这个:

代码语言:javascript
复制
a = array([168116745,168117411,168117729,168118170,168118695,168119286,168119610])
print('GM =', np.exp(np.average(np.log(a))))

或者,has有一个专用几何平均函数

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70943839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档