gpt4 book ai didi

在数组中创建实际的随机数据

转载 作者:太空宇宙 更新时间:2023-11-04 02:50:02 26 4
gpt4 key购买 nike

我一直在做一项作业,我必须在其中创建给定数量的数组并用随机数据填充它们。我想遵循的方法是我希望数组填充数据,只有一个百分比。问题是对于每个数组,随机值都在相同的位置,并且没有按我希望的方式散布。

我一直以这种方式创建数组:

int **array = malloc(DOC * sizeof *array);
for (i = 0; i < DOC; i++)
{
array[i] = malloc(MAXWORDS * sizeof **array);
}

并使用 :

填充它们
srand((unsigned) time(&t));

for(i = 0; i < DOC; i++){
for(j = 0; j < MAXWORDS; j++){
array[i][rand() %percentage]=rand() %VALUE;
}
}

在哪里

int percentage = rand() %MAXWORDS/10;

MAXWORDS 定义数组的长度DOC数组的个数VALUE 是最大随机值

As you can see the random values are all behaving identically.我知道这与 srand 依赖时间生成数字的方式有关,而且程序的执行速度非常快,所以相似的数据是因为“相似”的时间。所以我要问的是在不同的日子生成随机值,或者我可以做一些技巧来以不同的方式填充数组。

最佳答案

如果使用“rand() % percentage”,您只能选择每个数组前 10% 的元素。相反,您可能想要这样的东西:

for (i = 0; i < DOC; ++i){
for (j = 0; j < MAXWORDS; ++j) {
if (rand() % 100 <= 10) {
array[i][j] = rand() % VALUE;
}
}
}

这为数组中的每个元素提供了大约 10% 的初始化机会,这应该导致(对于足够大的数组)大约 10% 的元素被初始化。

如果您只想初始化数组的 10%,您可以改为执行一些操作,例如将所有索引 (0...j) 放入一个数组,随机化该数组,然后从用于初始化的随机数组。

关于在数组中创建实际的随机数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com