我想在python中编写一个函数来计算四个投影点的交叉比例,我想知道是否有一个优雅和简洁的实现来处理无限个案例。计算交叉比率
甲幼稚实施交比的看起来像这样:
ratio = lambda a,b,c: (a-c)/(b-c)
cross_ratio = lambda a,b,c,d: ratio(a,b,c)/ratio(a,b,d)
但是,当一个输入是无限这个失败。这不应该发生,而是我们希望无限的“互相抵消”,并给我们一个简单的比例。
例如,Infinity, 0, 1, -1
的交叉比应该是-1
。
另外,我想处理以两个数字的比例表示的积分。因此(1 1)
将是数1
,而(1,0)
将代表Infinity
等
我总是可以的情况下回落到一个定义,并用它做什么,但我觉得这可能是学习好的设计的好机会。
我正在使用Python 2.7和Sagemath模块。有关如何实现这一点的任何建议?