【问题标题】:How to generate a random number between 0 and a user-defined integer in C/C++? [duplicate]如何在 C/C++ 中生成 0 和用户定义的整数之间的随机数? [复制]
【发布时间】:2013-09-12 19:06:00
【问题描述】:

我的代码有问题,我尝试生成一个介于 0 和 dim 用户定义变量之间的数字。我遇到的问题是:

arrayPos = rand()%dim;

我已经打电话给srand(time(NULL)),并且 arrayPos 得到了一些奇怪的数字,比如 9.267e-315 等等。
关于如何解决它的任何想法?

谢谢

【问题讨论】:

  • 我很确定之前在 Stackoverflow 上有人问过这个问题......
  • 如果您使用 C++,尤其是 C++11,则应避免使用 rand(),应考虑使用 harmful,此外使用 % dim 不会产生均匀分布,应避免使用(我链接到的视频解释了原因)
  • 您的代码应该(在某种程度上合理地)按照所写的那样工作。 9.267e-315 在我看来就像“未初始化变量中的随机垃圾”。问题可能出在其他地方,在您未显示的代码中。
  • arrayPos 是如何定义的?暗淡是如何定义的?你是怎么把东西打印出来的?等等等等等等

标签: c++ c arrays random matrix


【解决方案1】:

问题确实是垃圾内存,我重新启动了计算机,它的工作就像一个魅力

【讨论】:

    猜你喜欢
    • 2012-09-25
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2011-04-29
    • 2013-07-31
    相关资源
    最近更新 更多