我只是,想知道如果rand
(http://www.cplusplus.com/reference/cstdlib/rand/)函数将生成随机数的相同的序列,而使用相同的种子当不同libc
实现,甚至不同的编译器和操作系统(赢,linux下运行)。对于相同的种子,由rand生成的随机数序列在C中保证总是相同的?
我没有使用各种编译器的一些测试(G ++ 4.8,G ++ 5.1和铛),它似乎,答案是肯定的,但是我没有发现使用任何“官方”的PRNG算法的提在C的随机数生成(http://pubs.opengroup.org/onlinepubs/009604599/functions/rand.html),还是这些都应该在标准中提到的...
从你发布的链接(posix):'如果srand()然后被调用相同的种子值,则应该重复伪随机数的序列。 C11,§7.22.2.2具有相同的措词。 –
@ P.P。是的,对于我来说,使用不同的编译器,序列在不同的计算机上是否也是相同的。 – fritzone
我怀疑你已经比较了同一个生成器的三个实现,其中两个(g ++的)是相同的。 – molbdnilo