Rob*_*vey 5 random macos objective-c ios
我一直在研究一个需要使用伪随机数生成的开发问题,以允许为给定的种子生成相同的随机数集.我目前一直在寻找使用long random(void)和void srandom(unsigned seed)为此(手册页),目前这些是在Mac应用程序,iOS应用程序和iOS应用程序(64位)中生成相同的随机数集,这是我所希望的.iOS测试只在模拟器中进行,所以我不知道这是否会影响结果.
我主要担心的是,这个算法可能会在某些时候发生变化,使我们正在开发的应用程序对旧数据有效无用.这些算法在未来设备上改变/不同的可能性有多大?
我会说它们极有可能会改变,因为任何标准都不能保证序列.
为什么不使用自己的随机数序列?即使是简单的线性同余生成器也能满足随机性的大多数统计特性.这是这种发电机的公式:
next_number = (a * current_number + b) % c
Run Code Online (Sandbox Code Playgroud)
同
a = 1103515245
b = 12345
c = 4294967296
Run Code Online (Sandbox Code Playgroud)
a,b,c的这些值为您提供了良好的统计特性,并且对于构建快速和脏的发电机而言是众所周知的.