Přečtěte si algebry funkce [uzavřen]

0

Otázka

Chci, aby algebra kalkulačka, ale já jsem zásobníku na recibing vstup uživatele. Jak se mohlo něco takového udělat?

String funcion = "X^2 + 3X + 1";
public void calcu(int x){ //code }
int result = calcu(2); //return the value for c = 2 (in this case 11)
algebra calculator java math
2021-11-20 22:20:11
1

Nejlepší odpověď

1

Mírně upravený odpověď na podobnou otázku zvládnout x^n termín (kde n je přirozené číslo):

public static double calcFunction(double arg, String str) throws ScriptException {
    String expr = Pattern.compile("x(\\^(\\d+))")
        .matcher(str)
        .replaceAll(mr -> "x " + " * x".repeat(Integer.parseInt(mr.group(2))-1)) // x^n
        .replaceAll("(\\d+)x", "$1 * " + arg) // ax
        .replaceAll("x", Double.toString(arg));

    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");

    // a checked ScriptException may be thrown
    System.out.println(expr + " = " + engine.eval(expr));

    double result = Double.parseDouble("" + engine.eval(expr));
    System.out.println("result = " + result);
    return result;
}

Test:

calcFunction(2, "x^2 + 3x + 1");
calcFunction(3, "3x^2 + 3x + 1");

Výstup:

2.0  * 2.0 + 3 * 2.0 + 1 = 11.0
result = 11.0
3 * 3.0  * 3.0 + 3 * 3.0 + 1 = 37.0
result = 37.0
2021-11-20 23:25:18

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................