2016-04-20 84 views
-6

如何在python代码中获得此公式。它应该等于0.343,但是当我输入它时,我总是得到其他东西。当我在纸上计算它时,我能够得到它,但在Excel/Python中我无法。将代码写入Python代码

Equation

我曾尝试:

((.310*.290)/.260)/(.310*.290)/(.260+((1-.310)*(1-.290)/1-.260)) 

这给了我7.85

+0

我不认为有一种方法来挽救这个问题这不会因为关闭而结束。然而,下面是带括号的方程:'0.31 * 0.29/0.26 /(0.31 * 0.29/0.26 +(1-0.31)*(1-0.29)/(1-0.26))' –

回答

1

您需要组分隔条下的两个括号中的表达式:

>>> (
...  (.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 
0
(((.310 * .290)/.260)/(((.310 * .290)/.260) + ((1-.310) * (1 - .290)/(1 - .260))))