コード例 #1
0
        public void LambdaFunctionTest()
        {
            var function = new LamdaFunction(0, 1, n, x, k);

            Assert.AreEqual(new Fraction(1, 2), function.Calculate());

            var function1 = new LamdaFunction(0, 2, n, x, k);

            Assert.AreEqual(new Fraction(0), function1.Calculate());

            var function2 = new LamdaFunction(0, 3, n, x, k);

            Assert.AreEqual(new Fraction(0), function2.Calculate());

            var function3 = new LamdaFunction(0, 4, n, x, k);

            Assert.AreEqual(new Fraction(0), function3.Calculate());

            var function4 = new LamdaFunction(1, 1, n, x, k);

            Assert.AreEqual(new Fraction(1, 2), function4.Calculate());

            var function5 = new LamdaFunction(1, 2, n, x, k);

            Assert.AreEqual(new Fraction(0), function5.Calculate());

            var function6 = new LamdaFunction(2, 1, n, x, k);

            Assert.AreEqual(new Fraction(1, 2), function6.Calculate());
        }
        public Fraction Calculate()
        {
            if (_s == 0)
            {
                return(StartValueCalculate());
            }

            var lamdaFunction1 = new LamdaFunction(_s - 1, 2 * _t - 1, _n, _x, _k);
            var lamdaFunction2 = new LamdaFunction(_s - 1, 2 * _t, _n, _x, _k);
            var roFunction     = new RoFunction(_s - 1, 2 * _t - 1, _n, _x, _k);

            return(lamdaFunction1.Calculate() + lamdaFunction2.Calculate() * roFunction.Calculate());

            /*  return (new LamdaFunction(_s - 1, 2 * _t - 1, _n, _x, _k).Calculate()) +
             *        ((new LamdaFunction(_s - 1, 2 *_t, _n, _x, _k).Calculate()) *
             *         (new RoFunction(_s - 1, 2 *_t, _n, _x, _k).Calculate()));*/
        }