java - Maxima 中的基本类型 boolean 值

标签 java methods boolean maxima

我对 Maxima 很陌生,但我了解 Java。我需要编写一个 Maxima 函数,用 Java 编写如下:

private boolean isEchelon() {
    for (int i = 0; i < headElementColumnIndexes.length; i++) {
        int current = headElementColumnIndexes[i];
        for (int j = i + 1; j < headElementColumnIndexes.length; j++)
            if (current == headElementColumnIndexes[j])
                return false;
    }
    return true;
}

是否有可能在 Maxima 中编写一个返回 boolean 值的函数?我可以要求一些例子吗?

最佳答案

是的,这是可能的。 boolean 函数中内置的 Maxima 称为谓词,并且(通常)以“p”结尾。示例:

(%i1) integerp (0);
(%o1)               true
(%i2) integerp (%pi);
(%o2)               false

您也可以编写自己的谓词。

(%i1) even_prime(n) := evenp(n) and primep(n);
(%o1)             even_prime(n) := evenp(n) and primep(n)
(%i2) even_prime(3);
(%o2)                              false
(%i3) even_prime(2);
(%o3)                              true

一开始显式返回 boolean 值可能会更容易,因为这更接近 java 语法。

(%i1) even_prime(n) := if evenp(n) and primep(n) then true else false;
(%o1)      even_prime(n) := if evenp(n) and primep(n) then true else false;
(%i2) even_prime(4);
(%o2)                              false

Maxima 的一个特点是二进制数值关系( =< 等)不会计算为 boolean 值。

(%i1) 4 = 5;
(%o1)                              4 = 5
(%i2) 5 > 3;
(%o2)                              5 > 3

要强制此类关系计算为 boolean 值,请使用 is功能。

(%i1) is (4 = 5);
(%o1)                              false
(%i2) is (5 > 3);
(%o2)                              true

关于java - Maxima 中的基本类型 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35962064/

相关文章:

java - getAssertionResults(); 的作用是什么?返回以及如何在 jmeter 的 bean shell 后处理器中检查它

c++ - “std::string&”类型的非常量引用的无效初始化

c++ - 为什么强制int夸大性能问题?

java - 从其他线程访问 View (Android)

java - 为什么 equals 不使用强制转换的 equals 方法?

java - 调用方法后出现 NoSuchElement 异常

java - Java中检查两个三位数是否有相同的数字

既非真亦非假的 Python 事物

java - 如何将两个位图的像素值异或在一起?

java - 如何使用 spring 标签访问与模型 bean 对象关联的 arraylist 的属性?