コード例 #1
0
        public static IEnumerable <ulong> ToUlongEnumerator(this IRando rando, ulong maxVal)
        {
            var mask = Numbers.UlongMask(maxVal.HiBit());

            while (true)
            {
                var retVal = rando.NextUlong() & mask;
                if (retVal < maxVal)
                {
                    yield return(retVal);
                }
            }
        }
コード例 #2
0
        public static ulong NextUlong(this IRando rando, ulong maxVal)
        {
            var mask = Numbers.UlongMask(maxVal.HiBit());

            while (true)
            {
                var retVal = rando.NextUlong() & mask;
                if (retVal < maxVal)
                {
                    return(retVal);
                }
            }
        }
コード例 #3
0
 public IGene Mutate(IRando rando)
 {
     return(GeneUlongModN.Make(rando.NextUlong(MaxVal), MaxVal));
 }
コード例 #4
0
 public override IGeneUlongModN NewBlock(IRando rando)
 {
     return(GeneUlongModN.Make(rando.NextUlong(MaxVal), MaxVal));
 }