Rém*_*oux 4 python integer rounding-error fractions one-liner
我想计算一个整数列表的倒数之和(看看它是否大于或等于1):
我想使用整数来避免浮点舍入问题。为此,我想这样解决:
我已经这样做了:
import numpy as np
my_list = [2, 3, 5, 7]
numerator = 0
for i in range(len(my_list)):
numerator += np.product(my_list[:i] + my_list[i+1 :])
denominator = np.product(my_list)
result = numerator>=denominator
Run Code Online (Sandbox Code Playgroud)
但我觉得应该为此写一句俏皮话。有没有一个函数可以计算分数倒数之和?或者也许是一个从列表中计算分子的函数?
该Fraction类型可以轻松准确地做到这一点:
>>> from fractions import Fraction
>>> bottoms = [2, 3, 5, 7]
>>> total = sum(Fraction(1, d) for d in bottoms)
>>> total
Fraction(247, 210)
>>> total > 1
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
527 次 |
| 最近记录: |