c++ - rand() 真的会这么糟糕吗?

标签 c++ macos random

<分区>

lol

以上是使用 rand() 获取随机坐标并向这些坐标处的像素值添加常量生成的示例图像。这是几千次迭代后的样子。我在 Mac OS X Lion 中使用 stdlib.h 中的 rand(),给它 time(NULL) 作为种子。

你可以清楚地看到垂直线,好像奇数 x 坐标的值比偶数 x 坐标的值高。

我如何实现更好的算法,或者我在哪里可以找到没有太多依赖性的算法? (我更喜欢只有标题的文件)。

这是代码(对不起,我花了这么长时间):

void generate(int iterations = 1) {
 for (unsigned int x = 0;x < (area * 4);++x) {
  map[rand() % area] += 1;
 }
 number a = min();
 number b = max();
 for (int i = 0;i < area;++i) {
  map[i] -= a;
  map[i] /= b;
 }
}

map 包含双 float ,稍后会转换为 RGB 值。

最佳答案

C++11 在 random 中提供了非常有用的随机数功能.参见 herehere了解更多详情。

关于c++ - rand() 真的会这么糟糕吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692388/

相关文章:

ruby-on-rails - 我现在(2010 年 1 月)应该使用哪个版本的 Ruby?

php - 如何使用 Homebrew 软件或 pecl 在 macos high sierra 上的 php 7.0 上安装 php-redis?

objective-c - 如何取消选择 cocoa 中的单选按钮

c++随机数生成器,允许用户选择范围

java - JAVA中从ArrayList随机生成字符串而不进行替换

java - 将网页另存为图像

c++ - 如何使用 gdb 查看 C++ 类在内存中的布局?

c++ - 哈希函数 : Is there a way to optimize my code further?

c++ - 3D 屏幕空间光线转换/拾取 DirectX9

java - 在具有最低特殊字符要求的 Java 中生成安全随 secret 码