コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        public AdditiveRecurrence(int a, int b, int c, int d)
        {
            var x = (a + b * ContinuedFraction.Sqrt(c, 60)) / d;
            var g = BigInteger.Pow(2, 64);
            var y = Rational.Floor(Rational.Frac(x.Convergents().Last()) * g);

            if (y == g)
            {
                y--;
            }
            value     = 0;
            increment = (ulong)y | 1UL;
        }