首先需要声明的是, 计算机不会产生相对随机的随机数, 计算机只能产生“伪随机数”。 其实相对随机的随机数只是一种理想的随机数, 它也不会产生一串相对随机的随机数。   伪随机数并不是假随机数, 这里的“伪”是有规律的意思, 有时不恪守任何规律;伪随机数有一部分恪守一定的规律;另一部分不恪守任何规律。 比如“世上没有两片形状完全相反的树叶”, 这正是点到了事物的特性, 即随机性, 这正是事物的共性, 你大约就会承受这样的理想了:计算机只能产生伪随机数而不能产生相对随机的随机数。 这里的计算机是指由冯诺依曼思想开展起来的电子计算机。 而未来的量子计算机有能够产生基于自然规律的不可重现的“真”随机数)  那么计算机中随机数是怎样产生的呢?有人能够会说, 随机数是由“随机种子”产生的。 那么随机种子是从哪里取得的呢?  上面看这样一个C程序:  这个程序(rand01. c)完好地阐述了随机数产生的过程:  random用来根据随机种子RAND_SEED的值计算得出随机数, 其中这一句:  是用来计算随机数的办法, 随机数的计算办法在不同的计算机中是不同的, 即使在相反的计算机中装置的不同的操作零碎中也是不同的。 这说明它们的计算办法不同。   现在, 我们明白随机种子是从哪儿取得的, 而且晓得随机数是怎样经过随机种子计算出来的了。 那么, 随机种子为什么要在内存的0040:006CH处取??040:006CH处存放的是什么?  学过《计算机组成原理与接口技术》这门课的人能够会记得在编制ROMBIOS时钟中缀效劳程序时会用到Intel8253定时/计数器, 在我们计算机的主机板上都会有这样一个定时/记数器用来计算以后零碎时间, 而这个记数器的值存放在哪儿呢?没错, 就在内存的0040:006CH处, 其实这一段内存空间是这样定义的:  时钟中缀效劳程序中, 每当TIMER_LOW转满时, 此时, 记数器也会转满, rand01. c中的