【发布时间】:2011-01-18 12:45:49
【问题描述】:
如果您有一个客户端/服务器应用程序,并且想要复制 rand() 函数在客户端上生成的相同系列的随机数,但在服务器上,算法/伪代码是什么?客户端和服务器将获得相同的种子(客户端上的 srand())。
谢谢!
请注意:
- 这是未知的吗?如果有,请说明
- 可以逆向工程吗?如果是这样,请张贴,除非任何许可协议会阻止您这样做。换句话说,不要做任何违法的事情
- 我对客户端/服务器应用程序的设计建议不感兴趣
- 我知道有更好和更新的方法来生成兰特数
【问题讨论】:
-
您确定 随机 数字是实现更大目标所需的吗?因为这样你就不会在 random 附近生成任何东西:只有预先确定的序列。如果您确实想要 随机 数字,这不是最好的方法。如果您不需要随机数字,为什么要使用
rand()? -
@Martinho:
rand()不提供 随机 数字,它提供了一个伪随机序列。这看起来正是提问者想要的(因为他在两个不同的地方使用相同的种子),他只是称它们为“随机数”。 -
我当然不会为此使用
rand,除非 iOS 和 OSX 的文档都指定了确切的算法,并指定了相同的东西。否则,没有理由假设 Apple 不会在未来发布的某个操作系统或其他操作系统中更改它,并且您的客户端/服务器将不再匹配。即使它被记录在案,写一个简单的 PRNG 也很容易,我仍然可能不会冒险rand。 -
@Steve Jessop:你是对的。我正在寻找相同的伪随机序列。谢谢你的澄清。
-
@Steve Jessop:是的,我也理解这种风险。感谢您表达这种担忧,很高兴看到它为其他用户写下来。
标签: iphone objective-c c random