我已经考虑了一段时间,但是对于随机生成2-d或可能3-d阵列来说,这可能是一个很好的方法。我不是在寻找具体的代码本身,而是更多的只是一个人们可能想到的一般想法或方式。
编辑:对不起,我输入错误,我的意思是说你有一个填充空格的数组(2d或3d),我想在其中随机生成Char * ......(其他一切)会是空白的)。就是我的意思。
答案 0 :(得分:2)
答案 1 :(得分:0)
使用rand()
生成一堆随机值并将它们排列成数组。
答案 2 :(得分:0)
如果您希望随机性在2维或3维中具有连续性,那么您正在寻找的概念就是“噪音”。
答案 3 :(得分:0)
我知道你不想要整个代码,但实际上代码并不多。
int array[A][B][C];
std::generate_n(array[0][0], A*B*C, rand);
答案 4 :(得分:0)
这应该有效:
int *ary, /* Array */
x_size, /* X size of the array */
y_size; /* Y size of the array */
x = rand() % MAX_SIZE;
y = rand() % MAX_SIZE;
ary = malloc(sizeof(int) * (x * y));
ary[1][1] = 1;
如果[] []索引不起作用,则可能需要使用
*(ary + (x_size * X_COORD) + Y_COORD)
访问元素[X_COORD][Y_COORD]
。我不完全确定c99是否支持该语法。
对不起,我想不出没有代码说出来的方法。
编辑:很抱歉这个混乱 - 认为你需要一个随机大小的数组。
答案 5 :(得分:0)
如果你试图用大写的ASCII字符稀疏地填充一个大的2D数组,它将类似于C中的以下内容:
int array[A][B];
for (int i = 0; i < SOMETHING; ++i)
{
//Note: Modulus will not give perfect random distributions depending on
//the values of A/B but will be good enough for some purposes.
int x = rand() % A;
int y = rand() % B;
char ch = rand() % 26 + 'A';
array[x][y] = ch;
}
答案 6 :(得分:0)
这不是您要求的确切答案,但无论如何都可能证明是有用的。有时当我想生成一个大的随机字符串时,我会执行以下操作: 1.生成一个小的随机字符串,长度为3或4个字符 2.使用您选择的算法(MD5,SHA1等)获取其哈希值
通过这种方式,您可以生成相当长的'randoms'字符串。一旦你有了很长的随机字符串,就可以把它拆分成较小的字符串或整个使用它。随机性的完整性取决于短初始字符串的随机性。