【发布时间】:2012-02-13 23:10:51
【问题描述】:
嗯,我真的不知道如何搜索我正在寻找的东西。 Google 提供了大量结果,但没有一个符合我的标准。
所以我在这里问它: 是否有任何已知的代码可以创建一个可预测的、看起来随机的、基于“种子”(在我的例子中是 unix 时间戳)和指定范围之间的代码?
我希望能够在我正在编码的游戏的脚本中创建天气预报(但我需要可以移植的 C++ 代码,我认为这里的很多人都不熟悉“PAWN”[a.k.a.小]脚本语言?:))。 天气 ID 从 0 到 ~100 不等,包括一些不推荐使用的 ID(所以我的解决方案是制作一个包含有效天气 ID 的数组,这样我们就不必担心那些 BAD_ID,我们不要让函数太复杂)。
我可能会制定这样的公式,但过去我遇到的问题是天气变化太快(就像每一秒一样,虽然我在某处丢失了代码:/),现在我真的没有想法我将如何制作这样的公式。
任何建议也非常感谢!
【问题讨论】:
-
看看Boost.Random。
-
如果您的天气变化太快,解决方案不是使用“更少”的随机发生器——而是减少选择不同模式的频率。如果 'Sun' 和 'Snowstorm' 的 id 彼此相邻也无济于事。
-
还有其他 random() 函数不需要我移植这么多代码吗? (PHP、PAWN、C++
-
很难理解你的意思。正如其他人所说,“随机”和“可预测”是相互排斥的。当然,PRNG 是完全可预测的,这可能就是您一直在使用的。如果 X-Zero 不那么频繁地选择随机数的建议不是您所需要的,那么您可能要询问的主题是“噪音”。使用 perlin 噪声等噪声函数,您可以构建一个在先前值范围内变化的函数,并且可以模拟很多自然的效果。
标签: c++ random formula weather forecasting