我有这段代码用 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/