delphi随机数random,随机数种子randseed,获取不重复随机整数,随机0-1小数的方法
导读:说到delphi获取随机数,很多人可能会说直接用random取随机数就好了,其实不然,如果只是单纯的random的话,那么获得随机数是伪随机数,产生的随机数序列是相同的,就会出现重复的情况。那么,怎么获得真正的随机数呢?那就不得不说一下randseed(随机数种子)这个函数了。我们今...
说到delphi获取随机数,很多人可能会说直接用random取随机数就好了,其实不然,如果只是单纯的random的话,那么获得随机数是伪随机数,产生的随机数序列是相同的,就会出现重复的情况。那么,怎么获得真正的随机数呢?那就不得不说一下randseed(随机数种子)这个函数了。
我们今天就来详细的说一下delphi获取不重复随机数、以及获得随机整数,随机小数,获取某范围内的随机数的方法。
前面已经说了,如果单单只用random函数的话,获取的是伪随机数,会出现重复的情况,在random之前,我们就要先用randseed(),先初始化随机数种子。
randseed()位于system.pas单元,如果没有uses引用的话,要先引用。
randseed()的定义(delphi2010):
procedure Randomize;
{$IFDEF POSIX}
begin
RandSeed := _time(nil);
end;
{$ENDIF POSIX}
{$IFDEF MSWINDOWS}
var
Counter: Int64;
begin
if QueryPerformanceCounter(Counter) then
RandSeed := Counter
else
RandSeed := GetTickCount;
end;
{$ENDIF MSWINDOWS}
从上面代码中,我们可以看到,randseed()函数是通过GetTickCount获取操作系统启动所经过(elapsed)的毫秒数来初始化的,从而起到用随数种子打乱随机数的作用。
Random()函数的定义:
function Random [ ( Range: Integer) ]
解释:
1、产生一个0<=X<Range的随机数,如果要产生一个0-N的随机整数的话,就填写参数Range.
2、如果你需要产生一个0-1之间的随机小数的话,Range不要填写,留空。
了解了原理之后,我们开始举例说明delphi获取各种随机数的方法吧。
delphi获取0-N随机不重复的整数:
Randomize; //先初始化随机数
a:=Random(100); //返回0-100范围内的随机数
上面的代码,就可以产生一个0-100之间随机的整数了。变量a的值为0-100之间的值。【村姑网】
delphi获得0-1之间的小数:
Randomize; //先初始化随机数
a:=Random(); //返回0-1范围内的随机数
上面的代码,就是delphi获取0-1之间随机小数的方法了,a的值是0-1之间的小数,如:
0.0650293058715761
0.142835484584793
0.393000256968662
0.24197786860168
0.646287544397637
从上面,我们可以看出,随机小数的位数是不固定的,如果需要固定小数点后的位数的话,可以用floatformat函数格式话一下。
上面,我们已经学习了随机产生0-N之间的整数和获取随机0-1之间小数的方法了。如果我们要随机获取10-N之间的整数该怎么办呢?
这就需要用到randomrange()函数了,先看一下randomrange函数的定义吧:
function RandomRange(const AFrom, ATo: Integer): Integer;
解释:randomrange返回AFrom和Ato之间的整数,AFrom开始的数值,Ato为结束的数值,下面看下例子吧。
delphi获取某个整数范围内的随机数:
Randomize; //先初始化随机数
a:=randomrange(10,100); //返回10-100范围内的随机整数
上面的代码就可以返回一个10到100之间的随机整数了。
当然,delphi的随机数用法不止上面的这些,限于文章篇幅,本文就暂时介绍到这里,后续我们再接着介绍delphi其他随机数的使用方法。如果你觉得本文写得好,记得转载哦,转载时注明本文来自【村姑网-www.cunguer.com】,谢谢~!
《delphi随机数random,随机数种子randseed,获取不重复随机整数,随机0-1小数的方法》地址:http://www.cunguer.com/article/339.html,本文来自村姑网,您身边的IT专家 www.cunguer.com,转载请注明出处,您的支持是我们创作的源泉~!
- ·Delphi ADO连接ACCESS数据库的方法介绍
- ·delphi 删除文件DeleteFile函数使用
- ·delphi用ODBC建立access数据库的连接方法
- ·delphi随机数random,随机数种子randseed,获取
- ·delphi 中if语句多条件下的使用
- ·delphi 还有人用吗?
- ·delphi “div”、“mod”、“\”除法运算
- ·delphi 移动DBGrid1中的数据到DBGrid2中的
- ·delphi pos函数使用方法实例详解
- ·delphi 判断星期几并显示出来
- ·delphi memo组件详细介绍
- ·delphi if语句的介绍及使用
- ·delphi dbgrid组件的5种实用功能的实现
- ·delphi四舍五入函数之“Round()函数”的介
- ·delphi copy()函数的介绍与使用
- ·delphi 计算今天是一年中的第几周