我想在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模塊。有關如何實現這一點的任何建議?