Java で数式を効率的に評価するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-10-31 19:28:30
オリジナル
575 人が閲覧しました

How to Evaluate Math Expressions Efficiently in Java?

Java で数式を評価する方法

この記事では、Java で数式を評価するためのさまざまなアプローチを検討します。これは、科学計算、データ分析、その他のアプリケーションにおける一般的な要件です。

一般的なアプローチの 1 つは、JEP (Java Expression Parser) などのライブラリを活用することです。式を評価するためのユーザーフレンドリーな API を提供し、Java コードに簡単に統合できます。以下に例を示します。

<code class="java">import org.nfunk.jep.JEP;

public class MathExpressionEvaluator {

    public static void main(String[] args) {
        // Create a JEP instance
        JEP jep = new JEP();

        // Example formula provided by the user
        String formula = "sin (x + pi)/2 + 1";

        // Set the variable values in the formula
        jep.addVariable("x", 0.5);

        // Parse and evaluate the formula
        try {
            jep.parseExpression(formula);
            double result = jep.getValue();
            System.out.println("Result: " + result);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}</code>
ログイン後にコピー

また、exp4j も、高く評価されている式評価器です。効率的な評価を実現するため、ダイクストラの操車場アルゴリズムに従っています。

<code class="java">import com.googlecode.exp4j.Expression;
import com.googlecode.exp4j.ExpressionBuilder;

public class MathExpressionEvaluator {

    public static void main(String[] args) {
        // Example formula provided by the user
        String formula = "3 * sin(y) - 2 / (x - 2)";

        // Replace 'x' and 'y' with actual values in the formula
        Expression expression = new ExpressionBuilder(formula)
                .variables("x", "y")
                .build()
                .setVariable("x", 0.5)
                .setVariable("y", 1.0);

        // Calculate the result
        double result = expression.evaluate();
        System.out.println("Result: " + result);
    }
}</code>
ログイン後にコピー

JEP と exp4j は両方とも堅牢な式評価機能を提供し、Java で数式を操作する便利で効率的な方法を提供します。

以上がJava で数式を効率的に評価するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!