ios - 可以在 Objective-C 中保存种子 PRNG 吗?

标签 ios objective-c random

我正在通过编写在 objective-c 中播种 PRNG

srandom(seed);

我是 C# 我可以将 PRNG 保存在一个变量中:

prng = new Random(seed);

这在 Objective-C 中也可行吗?

我想将 PRNG 保存在一个变量中的原因是希望立即和稍后生成的数字具有确定性的结果。我不想冒另一个函数重新播种 PRNG 的风险。

我尝试做一些研究,例如阅读这篇列出不同库的文章:http://nshipster.com/random/ ,但我还没有找到任何东西。

最佳答案

在 C 中,srand() 和 rand() 与对象无关,就像在 C# 中一样。 srand() 只是设置一个全局变量,然后 rand() 从中读取。据我所知,Objective-C 为该库使用了原始的 C 实现。由于不涉及任何对象,因此每次调用函数 rand() 都将始终访问由 srand() 设置的相同 PRNG 种子。

但这并不意味着没有任何解决方案。首先(也许不是最好的解决方案)是将您自己的 PRNG 编写为一个对象。另一种选择是找到一个面向对象的 PRNG 库(我通常不在 Objective-C 中编写代码,所以我没有任何建议)。最后,您可以遵循通常与 rand() 一起使用的标准,如果适合您的应用程序,则只在程序开始时调用一次 srand() .

关于ios - 可以在 Objective-C 中保存种子 PRNG 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39205830/

相关文章:

ios - 在 Objective - C 中打印二叉搜索树时遇到 EXC_BAD_ACCESS

ios - 如何检测用户是否登录到 iCloud?

ios - 单元格中的破坏约束

objective-c - 检索并更改 touchUpInside 更改为 touchUpOutside 的点

ios - Viewcontroller 无法识别我的变量?

ios - 管理从普通 NavigationBar 到透明 NavigationBar 的转换

objective-c - 带有 PXListView 的可变高度 NSTextField

java - 如何在java中生成0到2^32-1之间的随机数

c++ - 如何生成一个范围内的随机数?

php - 从多维数组中选择并删除随机键