2016-06-24 15 views
-5

In der Mathematik die Inverse einer Funktion f umkehren() ist f -1(). Alle Operationen wurden in umgekehrter Reihenfolge ausgeführt. Wenn z. B. f() = 2x + 2 ist, dann würde f -1() gleich x/2-2 sein.Verwenden einer Funktion in Javascript

Dies müsste auch für Math-Operationen wie Protokoll arbeiten.

+0

suchen Sie ein Computeralgebrasystem in Javascript? –

+0

Wäre es nicht nur 1/f (x)? – djthoms

+4

Also, was ist deine Frage? Es gibt keine allgemeine Möglichkeit, eine Programmierfunktion zu invertieren. Sie müssten eine ergänzende Funktion schreiben, die das Gegenteil tut. –

Antwort

3

Es gibt keine fertige Lösung für diese, noch ist es möglich, die Umkehrung einer generischen Funktion ohne Kenntnis der inneren Funktionen der Funktion zu implementieren. Außerdem müssen die Funktionseingänge eine Funktion des Rückgabewerts der Funktion sein, um dies zu ermöglichen.

Sie müssen es selbst schreiben.

Gegeben
function f(a) { 
    return 5; 
} 
var x = f(3); // 5 

, was das Ergebnis der folgenden sein würde?

var y = fInversed(5); 

Edit: neu geschrieben der erste Absatz um genauer zu sein.

+0

@ikegami Ich stimme absolut zu, dass es möglich ist, die inverse Funktion in diesem speziellen Fall zu erhalten. Ich bezog mich jedoch auf den allgemeinen Fall, dass irgendeine Funktion unumkehrbar ist. Stimmen Sie der bearbeiteten Version zu? – Timo

+0

Ich stimme zu, aber ich denke, es macht keinen Sinn anzunehmen, dass Sie die Funktion, die Sie invertieren müssen, nicht kennen. Das OP sagte, er wolle eine mathematische Funktion invertieren, also warum glaubst du, er meinte ein JavaScript-Funktionsobjekt? – ikegami

+0

Ich kann falsch liegen, aber der Titel sagt wörtlich * Wie man eine Funktion in Javascript * invertieren. – Timo

-2

Nicht sicher, was Sie meinen. Wenn Sie die Inverse möchten, schreiben Sie die Inverse. Es gibt keine einfache JavaScript-Funktion, um zu erreichen, was Sie wollen.

function inverse_f(int x) { 
    return 2/x-2; 
} 
2

Diese Frage ist breit, also gebe ich Ihnen eine breite Antwort.

Sie nicht der Lage sein, etwas entlang der Linien von func_inv(add(2+2)) weil add(2+2) kehrt eine ganze Zahl zu tun, die nicht invertiert werden kann. Das einzige Ding, das ich denken kann, um Ihre Frage zu beantworten, soll eine Schnur einlassen, lassen Sie uns "2+2*2" sagen. Sie würden dann diese Zeichenfolge in einzelne Zeichen aufteilen und die Operatoren manuell wechseln. Dies würde Sie mit einer Zeichenfolge "2-2/2" verlassen. Dann würden Sie (wahrscheinlich eine andere Funktion) eine Methode verwenden, um mathematische Operationen basierend auf den Operationen in der Zeichenkette auszuführen. Sie müssten auf Dinge wie Reihenfolge der Operationen achten. Es gibt keine einfache Antwort für dich.

+1

Wenn die Frage zu breit ist, sollten Sie dafür stimmen, es als solches zu schließen, anstatt zu antworten. – ssube

+1

Ich finde es großartig, dass Sie eine Erklärung und eine Richtung gegeben haben. – ikegami

Verwandte Themen