如何在python代碼中獲得此公式。它應該等於0.343,但是當我輸入它時,我總是得到其他東西。當我在紙上計算它時,我能夠得到它,但在Excel/Python中我無法。將代碼寫入Python代碼
我曾嘗試:
((.310*.290)/.260)/(.310*.290)/(.260+((1-.310)*(1-.290)/1-.260))
這給了我7.85
如何在python代碼中獲得此公式。它應該等於0.343,但是當我輸入它時,我總是得到其他東西。當我在紙上計算它時,我能夠得到它,但在Excel/Python中我無法。將代碼寫入Python代碼
我曾嘗試:
((.310*.290)/.260)/(.310*.290)/(.260+((1-.310)*(1-.290)/1-.260))
這給了我7.85
您需要組分隔條下的兩個括號中的表達式:
>>> (
... (.310 * .290)/.260
... /
... (
... (.310 * .290)/.260
... +
... ((1 - .310) * (1 - .290)/(1 - .260))
... )
...)
0.3430943785456421
這確保了在條的下面添加兩個部分之前除以上面的表達式結果。
你沒有這樣做,在你的企圖,所以你基本上得到這個代替:
(
((.310 * .290)/.260)
/
(.310 * .290)
/
(
.260
+
(
(1 - .310) * (1 - .290)/1
-
.260
)
)
)
我根據優先級規則我都和你嘗試拆分出來。注意區別?
(.310 * .290)
的結果應該首先被分成.260
,並且將其餘的表達式加到它的總和之下;您的版本首先將分欄結果從上面劃分出來,然後即結果除以.260 + ...
的結果。這是不一樣的表達。
甚至在原始表達式中的一些括號是多餘的。乘除加減先,所以我們可以刪除周圍乘法和除法括號:在一行
(
.310 * .290/.260
/
(.310 * .290/.260 + (1 - .310) * (1 - .290)/(1 - .260))
)
或全部:
>>> .310 * .290/.260/(.310 * .290/.260 + (1 - .310) * (1 - .290)/(1 - .260))
0.3430943785456421
(((.310 * .290)/.260)/(((.310 * .290)/.260) + ((1-.310) * (1 - .290)/(1 - .260))))
我不認爲有一種方法來挽救這個問題這不會因爲關閉而結束。然而,下面是帶括號的方程:'0.31 * 0.29/0.26 /(0.31 * 0.29/0.26 +(1-0.31)*(1-0.29)/(1-0.26))' –