HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 生成可靠的伪随机数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在iOS平台上写一个多人游戏.游戏依赖于动态生成随机数,以决定接下来会发生什么.但这是一款多人游戏,因此每个玩家的所有设备的“随机数”应该相同,以便拥有一致的游戏.

因此,我需要一个良好可靠的伪随机生成器,如果我首先播种相同的数字,它将在所有设备(iPad / iPhone / iPodTouch)和所有操作系统版本上保持生成相同的随机数序列.

看起来srand和rand会为我做这个工作,但是我不确定rand保证在所有操作系统版本的所有设备上生成相同的数字?否则是否有任何好的伪随机生成算法?

解决方法

从C标准(和目标C是C顶部的薄层,所以这仍然应该保持):

不能保证不同的实现(甚至同一实现的不同版本)将基于种子提供一致的序列.如果您真的想要保证这一点,您可以编写自己的线性同余生成器,例如标准本身中的示例:

// RAND_MAX assumed to be 32767.
static unsigned long int next = 1;
void srand(unsigned int seed) { next = seed; }
int rand(void) {
    next = next * 1103515245 + 12345;
    return (unsigned int)(next/65536) % 32768;
}

并且,尽管周围有更好的发生器,但简单的线性同余通常绰绰有余,除非你是统计学家或密码学家.

大佬总结

以上是大佬教程为你收集整理的ios – 生成可靠的伪随机数全部内容,希望文章能够帮你解决ios – 生成可靠的伪随机数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: