假设已经有了一个一直用相同种子生成的随机数:
Random r = new Random(0);
调用 r.Next()
将会持续产生同样的序列,那么有没有快速地找到该序列中第 N 个值的方法,而不需要调用 r.Next()
N 次呢?
我的场景是需要创建一个大的由 r.Next()
生成的值的数组。应用程序偶尔需要在任意索引处从数组中读取一个值。我想通过消除数组并代之以按需生成值来优化内存使用率。但是,要模拟出数组的第五百万个索引,需要使用暴力法来调用 r.Next()
五百万次,这比存储数组更加昂贵。是否可能通过较少循环的方式,快速地找到第 N 个 .Next() 值呢?