如何在c#中随机化种子

本文关键字:随机化 种子 | 更新日期: 2023-09-27 18:03:33

我需要在c#中生成随机int。我用时钟时间来设定时间。然而,由于rand . next()函数可能需要不到一毫秒的时间,因此如果必须生成一个int型列表,这就行不通了。

        for( int i=0; i<5; i++) {
            int max_val = 10; // max value
            var rnd = new Random(DateTime.Now.Millisecond);
            int randind = rnd.Next(0, max_val);
            Console.WriteLine(randind);
        }

输出:15555

如何在不添加丑陋睡眠的情况下以干净的方式随机化种子?

如何在c#中随机化种子

在循环之外创建您的Random对象,并且不提供seed参数—将为您选择一个。通过将它从循环中取出,rand . next()无论如何都会给您一个随机序列。

   var rnd = new Random();     
   for( int i=0; i<5; i++) {
        int max_val = 10; // max value
        int randind = rnd.Next(0, max_val);
        Console.WriteLine(randind);
    }

Guid对象保证每次都有不同的结果。你可以这样做:

... new Random(Guid.NewGuid().GetHashCode())