如何用Delphi产生0到15之间不重复的任意N个随机数?
2个回答
展开全部
pascal里的随机数
随机数是指理论上没有规律可循、在指定范围内每个数的出现几率相等、无法根据之前的数来预测下一个数的数列。一般随机数生成器的基本原理是:首先初始化一个随机种子,其初始值可以是任意的整数;在每次获取随机数时,以随机种子为基础进行某种特殊的运算,获得一个随机数并返回之,然后再对随机种子进行某种运算,改变随机种子的值。这样,就可以生成许多比较随机的数,但同一个初始值的随机种子将会生成完全相同的随机数列。
Pascal的System单元提供了两个与随机数有关的子程序:Randomize和Random。
Randomize过程用于初始化随机种子,其初始值取决于当前的系统时钟。
Random函数用于获取随机数
它有两种调用形式:
Random,返回一个0到1之间(不包括1)的随机实数;
Random(N),返回0至N之间(不包括N)的随机整数,N为Word类型整数。
另外,System单元中随机种子变量的标识符为RandSeed,你也可以手动修改它。随机数在信息学奥林匹克中可用于随机化搜索、穷举等算法,以优化其性能,也可用于在快速排序中选择关键数,以使其快速排序算法的最坏情况没有固定的相应数列。如果你希望使用了随机数的程序对同一个输入数据能有恒定的输出结果,可以设置RandSeed为一个定值。
Random(10000)
取出来随即数之后,lz只要再自己写一个函数,将数字转换为字符,并在前面补零并判断这个字符是否已经存在就可以了
PS:如何判断就要看你是怎样存的,存在哪里了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询