我有一个函数,可以对字典键执行计算,并更新它们。每个键都是一个 4-D 点(元组(,例如:
original_key = (6.0, 3.0, 4.8, 1.8)
updated_key = (6.513333333333332, 2.962666666666666, 5.238666666666668, 1.833333333333333)
我希望该函数将停止更新密钥,一旦原始密钥和新密钥之间的百分比变化为 10% 或更少。
如何计算具有此结构的 2 个元组之间的变化?(注意:可以将其更改为元组以外的其他类型(
编辑考虑一个 4-D 空间,我想检查 2 点之间的变化是否在 10% 或更少
如果您还没有距离函数,请定义一个,例如
from math import sqrt
def distance(a, b):
return sqrt(sum([(p - q)**2 for p,q in zip(a, b)]))
或者使用评论中提到的lambda,并在abs(distance(current_key, new_key) / distance(current_key, old_key)) <= 0.1
时停止更新。