C - 以某种密度填充矩阵

标签 c matrix initialization

我有这段代码用 0/1 值和 RHO 密度填充矩阵。对于从 0 到 2 的值,我需要相同的值。我的意思是,零的百分比应该相同,但其他值在 1-2 范围内。

for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
        grid[cur][i][j] = (((float)rand())/RAND_MAX) < rho;
    }
}

我唯一能做的就是像这样不优雅的事情。这使零/非零百分比保持不变并随机修改 1 个单元格:

...
if(grid[cur][i][j] > 0) {
    grid[cur][i][j] += rand()%2;
}

最佳答案

我认为这段代码将创建具有 RHO 密度和 1-2 范围内的其他值的 0。

for (i = 1; i <= n; i++) {
    for (j = 1; j <= n; j++) {
        grid[cur][i][j] = (((float)rand())/RAND_MAX) < rho ? 0 : rand() % 2 + 1;
    }
}

关于C - 以某种密度填充矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44482016/

相关文章:

ios - 在 C 回调中快速转换 UnsafeMutablePointer<Void>

c - 用于在聊天服务器中管理组的数据结构

c - 使用 C 中的函数指针重新启动计算机

c - 错误 !空列表

c++ - 复制矩阵的一部分并粘贴到另一个C++上

Android高效矩阵库

r - 如何将大多数因素的数据框转换为数值矩阵;不公开不起作用

c++ - 为什么可以在构造函数中修改 const 成员?

c++ - 从临时的赋值和引用初始化

c++ - 在带有初始化的声明中,我可以使用对未初始化数据的引用吗?