Matrix 生成具有随机零的矩阵
使用C我试图生成一个矩阵,它必须有更多的零元素,而不是非零元素。零元素应该是随机的,如何生成它 我可以生成一些元素为零的随机数,但是零元素应该比非零元素多Matrix 生成具有随机零的矩阵,matrix,random,sparse-matrix,Matrix,Random,Sparse Matrix,使用C我试图生成一个矩阵,它必须有更多的零元素,而不是非零元素。零元素应该是随机的,如何生成它 我可以生成一些元素为零的随机数,但是零元素应该比非零元素多 int main(){ srand(time(NULL)); int array[25]; int i; for (i=0;i<s;i++){ if (rand()%3 == 0) array[i]=rand()%3; else
int main(){
srand(time(NULL));
int array[25];
int i;
for (i=0;i<s;i++){
if (rand()%3 == 0)
array[i]=rand()%3;
else
array[i] = rand();
}
}
intmain(){
srand(时间(空));
int数组[25];
int i;
对于(i=0;i我假设您想要的非零值矩阵不超过10%?如果您有一个真正的大稀疏矩阵(数千或数百万个元素),可能会少很多
实际上,我不会走你要走的路线。我会首先将数组初始化为全零。你可以使用int-myArray[25]={0}
或memset
来实现这一点
一旦你有了这些元素,你就可以计算出你需要多少个非零元素。如果你有30个元素,想要10%的非零元素,你需要填写3个元素。你可以四处搜索,找到如何使用srand
来计算将非零元素放在哪些索引中
获得这些值后,您可以再次使用srand
获取并设置要填写的实际值
我特意没有在这里给出太多细节,只是一个大致的方向。尝试一些东西并提供实际编译的代码示例可能会很好(您的示例没有,有一些变量没有定义)。您想要的是均匀随机分布吗?