所以我有一些 C 代码,它根据 srand() 生成的数字计算一些结果。如果我使用相同的种子编号,结果将始终相同。
现在我有一个 Android 应用程序通过 JNI 加载这些 C 代码。然而,尽管使用相同的种子编号,结果却变得不同。我已经仔细检查了种子编号以确保它是相同的。但是,由于 Android 程序和本机代码都非常复杂,我很难弄清楚是什么导致了这个问题。
我可以肯定的是,我们没有使用 java 程序中的函数来生成随机数。所以大概 srand() 不是每次都用不同的种子号调用。Java 或 C 中的其他函数可以更改 srand() 生成的随机数吗?
谢谢!
更新:我想我的问题有点令人困惑。澄清一下,我比较的结果来自同一个平台,但运行不同。c 代码使用 rand() 来获取一个数字,并据此计算结果。因此,如果 srand() 的种子数始终相同,则 rand() 获得的数字应该相同,因此结果应该相同。但不知何故,即使我为 srand() 使用相同的种子,rand() 给了我不同的数字......对此有什么想法吗?