/// <seealso cref="DiscreteRNG.NextInt()"/> public int NextInt() { double d = random.NextDouble(); int idx = Collections.BinarySearch(v, d); if (idx > 0) { ++idx; } else { idx = -(idx + 1); } if (idx >= v.Count) { idx = v.Count - 1; } if (idx == 0) { return(k[0]); } int ceiling = k[idx]; int lower = k[idx - 1]; return(ceiling - random.Next(ceiling - lower)); }
public static byte[] GetDictPart(int entry) { //System.Console.WriteLine("GetDictPart STEP 1, ENTRY = " + entry); int part = Collections.BinarySearch(dictIndexes, entry); //int part = dictIndexes.BinarySearch(entry); //System.Console.WriteLine("GetDictPart STEP 2, part = " + part); if (part < 0) { part = -part - 2; } //System.Console.WriteLine("GetDictPart STEP 3, return = " + dictParts.Count); return(dictParts[part]); }