#c_sharp #случайные_числа #генерация_случайных_данных
Как сгенерировать случайное 64-разрядное число (типа long, он же Int64) на C#?
Ответы
Ответ 1
из social.msdn.microsoft.com Можно так: private readonly Random rnd = new Random(); // create it just once and reuse private ulong Get64BitRandom(ulong minValue, ulong maxValue) { // Get a random array of 8 bytes. // As an option, you could also use the cryptography namespace stuff to generate a random byte[8] byte[] buffer = new byte[sizeof(ulong)]; rnd.NextBytes(buffer); return BitConverter.ToUInt64(buffer, 0) % (maxValue - minValue + 1) + minValue; } или так: public static ulong Get64BitRandom(ulong minValue, ulong maxValue) { // Get a random array of 8 bytes byte[] buffer = new byte[sizeof(ulong)]; rnd.NextBytes(buffer); if (minValue == ulong.MinValue && maxValue == ulong.MaxValue) return BitConverter.ToUInt64(buffer, 0); ulong modValue = maxValue - minValue + 1; return (BitConverter.ToUInt64(buffer, 0) % modValue) + minValue; }
Комментариев нет:
Отправить комментарий