C语言,如何生成一列无序的数列

来源:百度知道 编辑:UC知道 时间:2024/06/28 09:09:31
比如我要生成1到10的排列数,乱序的。有这个函数吗?
最好matlab也可以用
就是随机生成十个不同的正整数。

1楼已经把程序写出来了 我就解释下吧

其实要生成随即数用到2个函数

srand()

rand()

当然rand()是可以单独使用的,不过你会发现每次的数列都是一样的,所以我们就要用到srand()
,它需要一个参数作为种子,我们要得到不同的数列,所以我们一般取时间作为种子,也就是参数time(0),这个生成的随即数的范围是0-65535(也可能是其他的,根据操作系统定的),要的到10以内的,我们对结果取10为模的余数,这样就是0-9,然后把结果加1

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main()
{
int a[10],i,j;
int flag=1;
srand((unsigned)time(NULL));
for(i=0;i<10;i++)
{
while(flag!=0)
{
flag=0;
int t=rand()%10+1;
for(j=0;j<i;j++)
if(a[j]==t)
{
flag=1;
break;
}
if(flag==0)
{
a[i]=t;
printf("%d\n",t);
}
}
flag=1;

}
}

随机数,种子seed random

MATLAB:
100个均匀分布的整数:floor(rand(100)*11)