2016-04-20 4 views
-6

Wie kann ich diese Gleichung in Python-Code erhalten. Es soll gleich 0,343 sein, aber wenn ich es austippe, bekomme ich immer etwas anderes. Wenn ich es auf Papier kalkuliere, kann ich es bekommen, aber in Excel/Python kann ich das nicht.Geschriebene Gleichung nach Python Code

Equation

Was habe ich versucht:

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

das gibt mir 7.85

+0

Ich glaube nicht, gibt es eine Möglichkeit, diese Frage zu retten das wird nicht damit enden, dass es geschlossen wird. Aber hier ist die Gleichung mit Klammern, die funktioniert: "0,31 * 0,29/0,26/(0,31 * 0,29/0,26 + (1-0,31) * (1-0,29)/(1-0,26))" –

Antwort

1

Sie müssen Gruppe, die sowohl die Expression unter der Teilungsstab in Klammern:

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

Damit wird sichergestellt, dass die Addition der beiden Teile unter dem Strich vor das obere Ausdrucksergebnis dividiert.

Sie nicht tun, dass in Ihrem Versuch, so können Sie dies im Wesentlichen stattdessen erhalten:

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

ich teilten beide meine und Ihre Versuche aus nach Vorrangregeln. Beachten Sie den Unterschied?

Das Ergebnis von (.310 * .290) sollte zuerst .260 geteilt werden und den Rest des Ausdrucks unter dem Strich summiert haben; Ihre Version teilt das Ergebnis von der Stange zuerst um so viel, dann , dass Ergebnis durch das Ergebnis .260 + ... geteilt wird. Das ist nicht derselbe Ausdruck.

Einige der Klammern sind sogar im ursprünglichen Ausdruck redundant. Multiplikation und Division geht vor Addition und Subtraktion, so können wir Klammern um die Multiplikation und Division entfernen:

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

oder alle auf einer Linie:

>>> .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))))