相关疑难解决方法(0)

System.Random继续返回相同的值

我正在使用System.Random对象,该对象在应用程序中使用固定种子进行实例化.我正在调用NextDouble方法,经过一段时间后,我得到0.0作为结果.

有没有任何补救措施,还有其他人遇到过吗?

编辑:我有一个种子用于整个运行,为了方便起见设置为1000.random.NextDouble被称为几十万次.它是一个优化器应用程序,可以运行几个小时,但这实际上发生在10-0分钟的执行之后.我最近添加了一些随机调用应用程序.

.net random

10
推荐指数
2
解决办法
3880
查看次数

并行循环和随机产生奇数结果

我刚开始玩任务并行库,遇到了有趣的问题; 我对将要发生的事情有一个大概的了解,但是希望听到比我更有能力的人的评论来帮助了解正在发生的事情.我为有点冗长的代码道歉.

我开始使用随机游走的非并行模拟:

 var random = new Random();
 Stopwatch stopwatch = new Stopwatch();

 stopwatch.Start();

 var simulations = new List<int>();
 for (var run = 0; run < 20; run++)
 {
    var position = 0;
    for (var step = 0; step < 10000000; step++)
    {
       if (random.Next(0, 2) == 0)
       {
          position--;
       }
       else
       {
          position++;
       }
    }

    Console.WriteLine(string.Format("Terminated run {0} at position {1}.", run, position));
    simulations.Add(position);
 }

 Console.WriteLine(string.Format("Average position: {0} .", simulations.Average()));
 stopwatch.Stop();

 Console.WriteLine(string.Format("Time elapsed: {0}", stopwatch.ElapsedMilliseconds));
 Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

然后我在并行循环中写了我的第一次尝试:

 var localRandom …
Run Code Online (Sandbox Code Playgroud)

random simulation parallel-processing task-parallel-library

8
推荐指数
1
解决办法
305
查看次数