有人知道吗,
在C#.net中使用Random()以123456为种子产生随机序列,
与在C++6.0中的Rand()以123456为种子产生的随机序列,相同吗?
如果不相同有没办法使它们相同???????????

解决方案 »

  1.   

    random的算法有很多种吧,如果前后用的算法都是一样而且采取的动态数值一样,结果应该一样.
      

  2.   

    没能从任何地方看到过它跟C++里使用了不同的随机算法我猜测应该没有不同不过即使知道是不同的随机算法,我们大概也没什么办法--除非自己写一个random生成器
      

  3.   

    C#中:相同种子的随机数,具有相同的随机数序列。
    比如:你的种子是123456,第一次调的时候,第一个随机数为N,
          那么,不管在什么地方调,它的第一个随机数都将为N,因为种子不变。
    但是这个随机数列表中的各项值,是随机的。也就是说,第二个随机数为N2,。。不同的种子具有不同的序列。
    所以有Random rdn = new Random();
    就是以当前时间为种子,用来长生不同的随机数。
    经常获得第一个随机数。VC不清楚。。
      

  4.   

    C++中:
    srand( 9u);
    int i;
    for( i = 0;   i < 10;i++ )
    printf( "  %6d\n", rand() );
    结果:
    68
    6151
    18175
    22398
    3382....C#中r=new Random(9);
    for (int i=0;i<10;i++)
    {
    System.Diagnostics.Debug.WriteLine(r.Next());
    }
    1848543519
    1240895648
    2065773252
    1801349602
    1964834993
    1722865216
    1276393953
    971273117
    1545866008
    1044130265结论:不一样.