可以使用库函数rand()。
rand声明于stdlibh,其原型为
int rand(void);
功能为返回一个随机整型值。在C语言中,该值是一个正数值。
在需要限定获取到的随机数范围时,如范围要求为[m,n] m<n且m,n均为整数,可以用
rand()%(n-m+1)+m
的形式进行获取。原理为:
%为取余计算,当%k时,结果是[0,k-1]之间的数值;
于是rand()%(n-m+1) ∈ [0, n-m];
所以rand()%(n-m+1)+m ∈ [0+m, n-m+m]=[m,n]。
1到60,编号为,01,02,03,60
先定好,读数规则,比如,从第某行第某列开始,从左到右,从上到下读
两位,两位一组读数
读出一个数,就记录下来,再接着读,遇到相同的,就舍去,继续往下读,超过范围的数,也舍去,继续读直到获得60个不同的数
比如有一列数:
475 948 578 957 947 349 043 25
则获得的数为,47 59 48 57 89(舍去) 57(舍去) 94(舍去)
73(舍去) 49 04 32
var
Num:integer;
begin
Randomize;//初始化随机种子
Num:=random(10); //随机10以内的数字
showmessage(Inttostr(Num));
end;
可以使用两种方式初始化一个随机数发生器:
第一种方法不指定随机种子,系统自动选取当前时间作为随机种子:
Random ro = new Random();
第二种方法可以指定一个int型参数作为随机种子:
int iSeed=10;
Random ro = new Random(10);
long tick = DateTimeNowTicks;
Random ran = new Random((int)(tick & 0xffffffffL) | (int) (tick >> 32));
这样可以保证99%不是一样。
之后,就可以使用这个Random类的对象来产生随机数,这时候要用到RandomNext()方法。这个方法使用相当灵活,甚至可以指定产生的随机数的上下限。
不指定上下限的使用如下:
int iResult;
iResult=roNext();
下面的代码指定返回小于100的随机数:
int iResult;
int iUp=100;
iResult=roNext(iUp);
而下面这段代码则指定返回值必须在50-100的范围之内:
int iResult;
int iUp=100;
int iDown=50;
iResult=roNext(iDown,iUp);
除了RandomNext()方法之外,Random类还提供了RandomNextDouble()方法产生一个范围在00-10之间的随机的双精度浮点数:
double dResult;
dResult=roNextDouble();
以上就是关于C语言中获得随机数的方法是什么全部的内容,包括:C语言中获得随机数的方法是什么、有随机数字表,如何获得随机数 我想获得60个随机数:1-60,有随机数字表之后怎么做.、Delphi中怎么得到随机数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)