Random-c#

C# — Генерация случайного числа

Задача: Нужно сгенерировать случайное число

Инструменты: C#

Решение: Для генерации случайных чисел воспользуемся классом Random или RNGCryptoServiceProvider 

Если Вам подходит генерация псевдо-случайных чисел, можно воспользоваться классом Random. При создании более одного случайного числа все же предпочтительно создать один раз экземпляр класса Random, и потом генерировать новые значения с помощью метода random.Next(). Потому что если между созданиями экземпляров класса будет небольшой промежуток времени у Вас будут повторяющиеся случайные чисел.

Рассмотрим несколько примеров:

Random rnd = new Random(); int randomNumber1 = random.Next(); int randomNumber2 = rnd.Next(1, 6); // генерация случайного чисела от 1 до 5 int randomNumber3 = rnd.Next(91); // генерация случайного чисела от 0 до 90
Code language: JavaScript (javascript)

Для генерации «безопасных» случайных чисел нам нужно использовать класс RNGCryptoServiceProvider

Рассмотрим пример использования.

using System.Security.Cryptography; ... using (var generatorProvider = new RNGCryptoServiceProvider()) { var data = new byte[4]; // 4 для int32 generatorProvider.GetBytes(data); var randomValue = BitConverter.ToInt32(data, 0); }
Code language: JavaScript (javascript)

PS: Если вы хотите сгенерировать случайное значение в Unity, Вам нужно проверить чтобы использовалось правильные пространство имен, а именно System.Random, потому что в Unity есть UnityEngine.Random, в котором нет возможности генерировать случайные значения.

Добавить комментарий