Exemple #1
0
function continuedFraction(n, iterations, maxNumberOfIterations, result) {
    var nIntegerPart = math.floor(n);
    var nFractionalPart = math.chain(n).subtract(nIntegerPart).done();

    result.push(nIntegerPart);
    if (math.equal(nFractionalPart, 0) || iterations >= maxNumberOfIterations) {
        return result;
    } else {
        var reciprocal = math.chain(1).divide(nFractionalPart).done();
//        console.log(nIntegerPart, nFractionalPart, reciprocal);
        return continuedFraction(reciprocal, iterations+1, maxNumberOfIterations, result);
    }
}
Exemple #2
0
console.log(math.nthRoot(27,3));				//指定開幾次根號
console.log(math.exp(2));					//指數
console.log(math.log(1024,2));					//對數
console.log(math.log10(1000));					//固定10為底對數
console.log(math.gcd(25,15,-10));				//最大公因數
console.log(math.lcm(6,21,5));					//最小公倍數
console.log(math.unit('5 cm').value);				//以公尺為單位顯示大小
console.log(math.unit('5 m').value);				//以公尺為單位顯示大小
console.log(math.dotMultiply([3,2],[5,7]));			//矩陣乘法
console.log(math.dotDivide([9,8],[3,2]));			//矩陣除法
console.log(math.dotPow([[1,2],[3,4]],2));			//矩陣乘冪
console.log('---------------------------------------');

//關係運算
console.log(math.compare(2,[1,2,3]));				//比較大小(大:1,小:-1,等於:0)
console.log(math.equal(2+1,[1,2,3]));				//判斷是否相等(相等:true,不等:false)
console.log(math.unequal(2+1,[1,2,3]));				//判斷是否不等(相等:false,不等true)
console.log(math.larger(2,[1,2,3]));				//判斷是否大於
console.log(math.largerEq(2,[1,2,3]));				//判斷是否大於等於
console.log(math.smaller(2,3));					//判斷是否小於
console.log(math.smallerEq(2,[1,2,3]));				//判斷是否小於等於
console.log('---------------------------------------');

//統計運算
console.log(math.sum(2,1,4,3));					//總和
console.log(math.sum([[2,5],[4,3],[1,7]]));			//矩陣總和
console.log(math.max(2,1,4,3));					//取最大值
console.log(math.max([[2,5],[4,3],[1,7]]));			//矩陣取最大值
console.log(math.min(2,1,4,3));					//取最小值
console.log(math.min([[2,5],[4,3],[1,7]]));			//矩陣取最小值
console.log(math.mean(2,1,4,3));				//取平均值
Exemple #3
0
let mathjs = require('mathjs');
mathjs.config({number: 'Fraction'});

module.exports = {
    readNumber(text) {
        return mathjs.fraction(text);
    },

    writeNumber(number) {
        return mathjs.format(number, {fraction: 'decimal', notation: 'fixed'});
    },

    isNumberEqual(x, y, ...rest) {
        for (let n of [y, ...rest]) {
            if (!mathjs.equal(x, n)) {
                return false;
            }
        }
        return true;
    },

    divide(x, y, ...rest) {
        return [x, y, ...rest].reduce(
            (result, value) => mathjs.divide(result, value));
    },

    multiply(x, y, ...rest) {
        return mathjs.multiply(x, y, ...rest);
    },