求向量的模的python实现的问题
来源:3-2 实现向量规范化
百里守约
2019-01-16
bobo老师好!
您的代码没有考虑溢出的问题
def norm(self):
"""返回向量的模"""
return math.sqrt(sum(e**2 for e in self))
是不是这样更好,但norm2()看起来变慢了。
def norm2(self):
"""返回向量的模"""
_max = max(abs(e) for e in self)
return _max * math.sqrt(sum((e/_max)**2 for e in self))
写回答
1回答
-
赞!
不过由于Python语言本身对于整型的溢出限制非常宽松。所以通常在Python中不太处理溢出问题。不信的话,计算一下2**1000试试看:)
甚至试一下2**10000;2**100000;2**1000000:)
212019-01-16
相似问题