相关疑难解决方法(0)

为什么在使用rand()时会得到这种特殊的颜色模式?

我试图创建一个图像文件,如下所示:

uint8_t raw_r[pixel_width][pixel_height];
uint8_t raw_g[pixel_width][pixel_height];
uint8_t raw_b[pixel_width][pixel_height];
uint8_t blue(uint32_t x, uint32_t y)
{
    return (rand()%2)? (x+y)%rand() : ((x*y%1024)%rand())%2 ? (x-y)%rand() : rand();
}
uint8_t green(uint32_t x, uint32_t y)
{
    return (rand()%2)? (x-y)%rand() : ((x*y%1024)%rand())%2 ? (x+y)%rand() : rand();
}
uint8_t red(uint32_t x, uint32_t y)
{
    return (rand()%2)? (y-x)%rand() : ((x*y%1024)%rand())%2 ? (x+y)%rand() : rand();
}

for (y=0; y<pixel_height; ++y)
{
    for (x=0; x<pixel_width; ++x)
    {
        raw_b[x][y]=blue(x, y);
        raw_g[x][y]=green(x, y);
        raw_r[x][y]=red(x, y);
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望随机得到一些东西(白噪声).但是,输出很有意思:

你知道原因吗?


编辑

现在,很明显它与之无关rand().

也试试这段代码: …

c random image

169
推荐指数
2
解决办法
7457
查看次数

如何在范围内生成随机整数

这是以前发布的问题的后续内容:

如何在C中生成随机数?

我希望能够在特定范围内生成一个随机数,例如1到6,以模仿骰子的边.

我该怎么做呢?

c random

103
推荐指数
7
解决办法
30万
查看次数

85
推荐指数
5
解决办法
23万
查看次数

在整个范围内均匀生成随机数

我需要在指定的时间间隔内生成随机数,[max; min].

此外,随机数应该在区间上均匀分布,而不是位于特定点.

Currenly我正在生成:

for(int i=0; i<6; i++)
{
    DWORD random = rand()%(max-min+1) + min;
}
Run Code Online (Sandbox Code Playgroud)

从我的测试中,只有一点产生随机数.

Example
min = 3604607;
max = 7654607;
Run Code Online (Sandbox Code Playgroud)

随机数生成:

3631594
3609293
3630000
3628441
3636376
3621404
Run Code Online (Sandbox Code Playgroud)

从下面的答案:好的,RAND_MAX是32767.我在C++ Windows平台上.有没有其他方法来生成具有均匀分布的随机数?

c++ random

83
推荐指数
7
解决办法
11万
查看次数

srand() - 为什么只调用一次?

这个问题是关于这个问题的评论 推荐的方法来初始化srand?第一条评论说srand()应该只在应用程序中调用ONCE.为什么会这样?

c random srand

71
推荐指数
4
解决办法
7万
查看次数

如何从rand()获取特定范围的数字?

srand(time(null));

printf("%d", rand());
Run Code Online (Sandbox Code Playgroud)

给出一个高范围的随机数(0-32000ish),但我只需要大约0-63或0-127,但我不知道如何去做.有帮助吗?

c random

33
推荐指数
10
解决办法
15万
查看次数

如何在C中生成随机浮点数

我找不到解决方案,从中找到随机浮点数[0,a],其中a是用户定义的浮点数.

我尝试了以下内容,但它似乎无法正常工作.

float x=(float)rand()/((float)RAND_MAX/a)
Run Code Online (Sandbox Code Playgroud)

c random

29
推荐指数
2
解决办法
11万
查看次数

c - 随机数发生器

如何生成0到1之间的随机数?

c random

15
推荐指数
3
解决办法
5万
查看次数

15
推荐指数
2
解决办法
7万
查看次数

如何在C中生成随机64位无符号整数

我需要使用C.我的意思是产生的随机的64位无符号整数,范围应该018446744073709551615.RAND_MAX1073741823.

我在链接中找到了一些可能重复的解决方案,但答案主要是连接一些rand()结果或进行一些增量算术运算.所以结果总是18位或20位.我也希望像成果5,11,33387,不只是3771778641802345472.

顺便说一句,我真的没有这么多的C经验,但任何方法,代码样本和想法都可能是有益的.

c random unsigned-integer

12
推荐指数
2
解决办法
8664
查看次数

标签 统计

c ×9

random ×8

c++ ×1

image ×1

ipad ×1

linux ×1

objective-c ×1

posix ×1

srand ×1

unsigned-integer ×1