C#

Как сгенерировать случайные числа в C#?

VZ
Vadim Zaynutdinov
7 458
Чисто случайных чисел, как при бросании кубиков, в компах в принципе не бывает. Но есть разные алгоритмы создания криптографически надежных псевдослучайных чисел, максимально приближенных к реальному рандому. В C# такие создаются с помощью RandomNumberGenerator
 using System.Security.Cryptography; 
for(int i = 0; i < 50;++i)
Console.Write($"{RandomNumberGenerator.GetInt32(-1000, 1001)} ");
Николай Тураев
Николай Тураев
10 596
Лучший ответ
Vadim Zaynutdinov Это только на новых версиях .NET?
А класс Random вам не подходит?
Nikolay Saraev
Nikolay Saraev
20 187
В C# для генерации случайных чисел используется класс Random.

Пример генерации случайного целого числа в диапазоне от 1 до 10:


Copy code
Random random = new Random();
int randomNumber = random.Next (1, 11);
В данном примере мы создаем экземпляр класса Random и вызываем метод Next(), указывая диапазон чисел, которые мы хотим получить (в данном случае от 1 до 10). Метод Next() возвращает случайное целое число в указанном диапазоне.

Если вам нужно генерировать случайные числа с плавающей точкой, то можно использовать метод NextDouble(), который возвращает случайное число с плавающей точкой от 0 до 1:


Copy code
double randomDouble = random.NextDouble();
Но в этом случае для получения случайного числа в нужном диапазоне придется выполнить некоторые дополнительные вычисления.
Random rnd = new Random(DateTime.Now.Millisecond);
int number = rnd.Next(1, 101); // случайное число в диапазоне [1, 100]
double randomDouble = rnd.NextDouble(); // случайное число с плавающей точкой от 0 до 1
string[] colors = { "Red", "Green", "Blue" };
string randomColor = colors[rnd.Next(colors.Length)]; // случайный цвет из массива
```
Shoxrux Hamrayev
Shoxrux Hamrayev
1 364
Random.Range(0,9999999999999999999);
Не знаю рабочий ли это код. Но если тебе нужны иммено не псевдослучайные то вот.
(вырвал незнаю откуда)

using System;
using System.Net .Http;
using System.Text.Json;
using System.Threading.Tasks;

namespace RandomOrgExample
{
class Program
{
static async Task Main(string[] args)
{
var httpClient = new HttpClient();
var requestUri = " https://www.random.org/integers/?num=1&min=1&max=100&col=1&base=10&format=plain&rnd=new ";
var response = await httpClient.GetAsync(requestUri);
if (response.IsSuccessStatusCode)
{
var responseContent = await response.Content.ReadAsStringAsync();
var randomNumber = int.Parse(responseContent.Trim());
Console.WriteLine($"Random number: {randomNumber}");
}
else
{
Console.WriteLine($"Failed to get random number: {response.StatusCode}");
}
}
}
}
Vadim Zaynutdinov Это медленно и нужен интернет