AIMA.Core.Util.Math.MixedRadixNumber.getCurrentNumeralValue C# (CSharp) Méthode

getCurrentNumeralValue() public méthode

public getCurrentNumeralValue ( int atPosition ) : int
atPosition int
Résultat int
        public int getCurrentNumeralValue(int atPosition)
        {
            if (atPosition >= 0 && atPosition < radixs.Length)
            {
                if (recalculate)
                {
                    long quotient = value;
                    for (int i = 0; i < radixs.Length; i++)
                    {
                        if (0 != quotient)
                        {
                            currentNumeralValue[i] = (int)quotient % radixs[i];
                            quotient = quotient / radixs[i];
                        }
                        else
                        {
                            currentNumeralValue[i] = 0;
                        }

                    }
                    recalculate = false;
                }
                return currentNumeralValue[atPosition];
            }
            throw new InvalidOperationException(
                    "Argument atPosition must be >=0 and < " + radixs.Length);
        }

Usage Example

 public void testCurrentNumberalValue()
 {
     MixedRadixNumber mrn;
     //
     mrn = new MixedRadixNumber(0, new int[] { 3, 3, 2, 2 });
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(35, new int[] { 3, 3, 2, 2 });
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(1, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(1, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(25, new int[] { 3, 3, 2, 2 });
     Assert.AreEqual(1, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(1, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(17, new int[] { 3, 3, 2, 2 });
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(1, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(8, new int[] { 3, 3, 2, 2 });
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(0, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(359, new int[] { 3, 4, 5, 6 });
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(3, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(4, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(5, mrn.getCurrentNumeralValue(3));
     //
     mrn = new MixedRadixNumber(359, new int[] { 6, 5, 4, 3 });
     Assert.AreEqual(5, mrn.getCurrentNumeralValue(0));
     Assert.AreEqual(4, mrn.getCurrentNumeralValue(1));
     Assert.AreEqual(3, mrn.getCurrentNumeralValue(2));
     Assert.AreEqual(2, mrn.getCurrentNumeralValue(3));
 }
All Usage Examples Of AIMA.Core.Util.Math.MixedRadixNumber::getCurrentNumeralValue