以一定比例随机初始化 C 格式数组的最佳方法是什么?



我有一个2D数组,我想用b和c值初始化,这样50%的单元格是a, 25% b和25% c。你能建议我一个方法来做到这一点吗?

编辑:我已经找到了1D数组的解决方案,我可以适应2D数组(我确定地初始化然后shuffle): C中的shuffle数组

有没有更好的办法?

首先,根据比例用a, b, c填充二维数组,然后对数组进行洗牌。

int size_a = size * 50%;
int size_b = size * 25%;
int size_c = size * 25%;
int i;
for(i = 0; i < size_a; ++i)
{
    A[i/WIDTH][i%WIDTH] = a;
}
...

,其他也一样。然后使用shuffle(在c++中,我们有std::shuffle)从链接中获得,同时将2D数组映射到1D数组。

最新更新