C标准没有规定srand()和rand()的实现.因此,不同的环境(OS,C库,体系结构等)将很可能产生对于相同种子值不同的数字序列.
此外,Java的Random类的实现不受任何特定算法的约束.同样,不同的JVM可以很好地为相同的种子值产生不同的序列.此外,实现很可能不会与标准C函数相关联.这意味着,Java生成的序列将与使用相同种子的C序列不同.
如果您确实需要在Java中生成随机序列以与标准C函数完全匹配,那么您希望做的最好的事情是复制特定环境的序列.这需要创建一个JNI库来代理对srand()和rand()的调用,或者创建一些其他外部进程来进行调用并从Java调用.无论哪种方式,这都是很多复杂性和更多的程序维护.
实际上,如果你需要的是随机序列,它们看起来是均匀分布的,无论确切的值如何,那么按原样使用Random.对于大多数RNG需求来说,这已经足够了.