MyTetra Share
Делитесь знаниями!
Генерация одинаковых чисел RANDOM
Время создания: 18.09.2019 21:59
Текстовые метки: random, c#, одинаковые числа random
Раздел: Компьютер - C#
Запись: Kozlov-AE/Tetra/master/base/1568833141c982i5ttwq/text.html на raw.githubusercontent.com

Рандом на входе получает seed, метод next уже возвращает нужное число в некотором диапазоне.  

Random rnd = new Random(Guid.NewGuid().GetHashCode());

А далее как обычно:

rnd.Next(1, 5)


GUID не проектировались как случайные числа так что я бы не стал так делать. Можно поступть по аналогии с тем как уже сделано в .NET Core.


C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static class RandomFactory
{
    static Random _globalRandom;
    
    static RandomFactory()
    {
        using (var rng = new RNGCryptoServiceProvider())
        {
            byte[] data = new byte[4];
            rng.GetBytes(data);
 
            int seed = BitConverter.ToInt32(data, 0).Dump();
            _globalRandom = new Random(seed);
        }
    }
    
    public static Random Create()
    {
        lock (_globalRandom)
        {
            return new Random(_globalRandom.Next());
        }
    }
}


1
var random = RandomFactory.Create();
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования