如何产生真正的随机函数?

//MSDN 
Randomize

为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

---- 在VB中的随机函数是Rnd,但在使用的过程中发现,虽然程序启动后产生的数值是随机的,但对于每次重新启动,程序都会产生相同的随机数序列,应该怎样解决?

----VB中随机函数的原形是: Rnd(number),Rnd函数返回小于1但大于或等于0的值。number (可选项)的值决定了Rnd生成随机数的方式。由于生成随机数方式的确定,导致了每次新启动随机函数,最初给定的种子都会生成相同的数列,因为每一次调用Rnd函数都用数列中的前一个数作为下一个数的种子。

----为了每次运行程序调用随机函数都会有不同的随机数序列,在调用Rnd之前,先使用无参数的Randomize语句初始化随机数生成器,该生成器具有根据系统计时器得到的种子,这样再调用Rnd就会得到不同的随机数序列了。

----另外,根据Randomize的工作原理,用户也可以编制自己的随机函数,即利用函数Timer得到从午夜开始到现在经过的秒数,然后再根据要得到的随机数值大小对该数值进行“衰减”处理,这样得到的数值则可称得上是真正意义的随机数值。

(0)

相关推荐

  • php中随机函数mt_rand()与rand()性能对比分析

    本文实例对比分析了php中随机函数mt_rand()与rand()性能问题.分享给大家供大家参考.具体分析如下: 在php中mt_rand()和rand()函数都是可以随机生成一个纯数字的,他们都是需要我们设置好种子数据然后生成,那么mt_rand()和rand()那个性能会好一些呢,下面我们带着疑问来测试一下. 例子1. mt_rand() 范例,代码如下: 复制代码 代码如下: <?php echo mt_rand() . "n"; echo mt_rand() . &quo

  • php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍

    shuffle()定义和用法 shuffle() 函数把数组中的元素按随机顺序重新排列. 若成功,则返回 TRUE,否则返回 FALSE. 注释:本函数为数组中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序. 注释:自 PHP 4.2.0 起,不再需要用 srand() 或 mt_srand() 函数给随机数发生器播种,现已被自动完成. 语法 shuffle(array) 参数 描述 array 必需.规定要使用的数组. 例子 复制代码 代码如下: <?php $my_array = a

  • Oracle随机函数之dbms_random使用详解

    dbms_random是oracle提供的一个随机函数包,以下介绍一些dbms_random的常用示例: dbms_random.value用法: 生成一个大于等于0,小于等于1的38位小数 复制代码 代码如下: -- FUNCTION value RETURN NUMBER; select dbms_random.value from dual; SQL> select dbms_random.value from dual; VALUE ---------- 0.61011338 复制代码

  • perl写的一个随机编故事的程序(rand随机函数)

    复制代码 代码如下: #!/bin/perluse strict;  use warnings; #定义变量  my $count;  my $input;  my $number;  my $sentence;  my $story; #定义四个数组  #定义了人物数组  my @nouns=  (     'Dad',     'TV',     'Mom',     'Groucho',     'Rebecca',     'Harpo',     'Robin Hood',     '

  • 如何利用当前时间生成随机函数?

    quote.asp <%Set MyFileObj = Server.CreateObject("Scripting.FileSystemObject")Set MyTextFile = MyFileObj.OpenTextFile("c:\quote.txt") ' 设置好路径.IF NOT MyTextFile.AtEndOfStream THENheader = CInt(MyTextFile.ReadLine) ' 读表头. END IFRANDOMI

  • python中随机函数random用法实例

    本文实例讲述了python中随机函数random用法.分享给大家供大家参考.具体如下: python中的random模块功能非常强大,可以生成各种随机值 #! python # random import random print random.choice(['apple', 'pear', 'banana']) #从数组中随机选择一个元素 print random.sample(xrange(100), 10) # sampling without replacement print ran

  • sql server中随机函数NewID()和Rand()

    在SQL Server中,随机函数有rand(),NewID(),其中rand是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符. SELECT * FROM Northwind..Orders ORDER BY NEWID() --随机排序 SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID() --从Orders表中随机取出10条记录 示例 A.对变量使用 NEWID 函数 以下示例使用 NEWID

  • 详解C语言中rand函数的使用

    前言 我们在编程实现算法的过程中,往往需要使用到随机数.由于计算机是一台以逻辑为基础的机器,没法做到真正的随机(大概量子计算机可以?).所以计算机生成的是伪随机数,供我们使用. 我们使用C语言的rand函数,生成的也是伪随机数. c语言之rand函数的使用 1.写入头文件 #include <stdlib.h> #include <stdio.h> #include <time.h> 2.变量的定义 void main( void ) { int i,k; 3.sran

  • 如何产生真正的随机函数?

    //MSDN  Randomize 为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) * Rnd + lowerbound) 这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限. ---- 在VB中的随机函数是Rnd,但在使用的过程中发现,虽然程序启动后产生的数值是随机的,但对于每次重新启动,程序都会产生相同的随机数序列,应该怎样解决? ----VB中随机函数的原形是: Rnd(numbe

  • C++ 中随机函数random函数的使用方法

    C++ 中随机函数random函数的使用方法 一.random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过. 可改用C++下的rand函数来实现. 1.C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数. RAND_MAX必须至少为32767.rand()函数不接受参数,默认以1为种子(即起始值). 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义.(但这样便于程序调试) 2.C++中另一函数srand(),

  • C基础 寻找随机函数的G点详解

    引言 随机函数算法应该是计算机史上最重要的十大算法之一吧. 而C中使用的随机函数 #include <stdlib.h> _Check_return_ _ACRTIMP int __cdecl rand(void); 本文主要围绕rand 函数找到G点. 就是伪随机函数的周期值. 关于rand 源码, 可以从Linux底层源码 glibc中找.  看了一下大约4个文件. 算法比较复杂. 感觉很稳定. 这里不探讨随机算法的实现. 只为了找到 随机函数周期. 前言 现在window上测试. 测试代

  • PHP也能干大事 随机函数

    写在前面 PHP也能干大事是我总结的PHP语法特性及相关函数类库的经典用法,并不一定是真正能实现四两拨千斤的功效,但是掌握这些方法,可以在你的工作和学习上有一些帮助,希望大家能集思广益,将<PHP也能干大事>丰富得更精彩!转载请注明出处(3mc2.com) 二.前言 PHP是常见的脚本语言,主要是因为其简单易学,上手快,几乎50%以上的Web程序都有PHP的身影(不完全统计).PHP为开发这提供了丰富的函数和API接口,这使得我们能够非常方便地使用其强大的内置函数及扩展,本文是<PHP也

  • asp连接SQL和Access数据代码(asp里的随机函数)

    asp连接sql 第一种写法: 复制代码 代码如下: MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=;database=infs;" Set conn = Server.Createobject("ADODB.Connection") conn.open MM_conn_STRING SET RS=SERVER.CreateObject("ADOBD.recordset&qu

  • 可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集

    经我们站长测试可用的ASP无重复数字随机函数, 数组实现, 并应用于随机显示记录集作用: 本函数适用于随机显示小数量的随机不重复数字 本函数适用于显示小数量的随机不重复记录集 为了不影响效率, 上限超过一千, 不建议使用本函数 shawl.qiu 2006-09-06  http://blog.csdn.net/btbtd 主内容: 函数及应用函数随机显示100条记录 linenum  复制代码 代码如下: <%       dim rs, rNum       dim temp       s

随机推荐