电脑随机数产生的计算具体方法
我知道电脑的随机数是由具体的算法产生的请问产生的具体函数另外,特别的介绍一下VB中随机数的具体产生算法越具体越好,最好连表达式都找出来。要是没表达式就说具体算法。...
我知道电脑的随机数是由具体的算法产生的
请问产生的具体函数
另外,特别的介绍一下VB中随机数的具体产生算法
越具体越好,最好连表达式都找出来。要是没表达式就说具体算法。 展开
请问产生的具体函数
另外,特别的介绍一下VB中随机数的具体产生算法
越具体越好,最好连表达式都找出来。要是没表达式就说具体算法。 展开
4个回答
展开全部
计算机随机数的产生
[ 来源: 转载 | 作者: 网络学院 | 时间: 2005-5-1 0:44:47 ]
字号选择〖 大 中 小 〗/ 双击滚屏 单击停止
计算机中随机数的产生
大家可能很多次讨论过随机数在计算机中怎样产生的问题,在这篇文章中,我会对这个问题进行更深入的探讨,阐述我对这个问题的理解。
首先需要声明的是,计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。
那么计算机中随机数是怎样产生的呢?有人可能会说,随机数是由“随机种子”产生的。没错,随机种子是用来产生随机数的一个数,在计算机中,这样的一个“随机种子”是一个无符号整形数。那么随机种子是从哪里获得的呢?
下面看这样一个C程序:
//rand01.c
#include<dos.h>
static unsigned int RAND_SEED;
unsigned int random(void)
{
RAND_SEED=(RAND_SEED*123+59)%65536;
return(RAND_SEED);
}
void random_start(void)
{
int temp[2];
movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4);
RAND_SEED=temp[0];
}
main()
{
unsigned int i,n;
random_start();
for(i=0;i<10;i++)
printf("%u\t",random());
printf("\n");
}
[ 来源: 转载 | 作者: 网络学院 | 时间: 2005-5-1 0:44:47 ]
字号选择〖 大 中 小 〗/ 双击滚屏 单击停止
计算机中随机数的产生
大家可能很多次讨论过随机数在计算机中怎样产生的问题,在这篇文章中,我会对这个问题进行更深入的探讨,阐述我对这个问题的理解。
首先需要声明的是,计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种理想的随机数,即使计算机怎样发展,它也不会产生一串绝对随机的随机数。计算机只能生成相对的随机数,即伪随机数。
伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,你大概就会接受这样的事实了:计算机只能产生伪随机数而不能产生绝对随机的随机数。
那么计算机中随机数是怎样产生的呢?有人可能会说,随机数是由“随机种子”产生的。没错,随机种子是用来产生随机数的一个数,在计算机中,这样的一个“随机种子”是一个无符号整形数。那么随机种子是从哪里获得的呢?
下面看这样一个C程序:
//rand01.c
#include<dos.h>
static unsigned int RAND_SEED;
unsigned int random(void)
{
RAND_SEED=(RAND_SEED*123+59)%65536;
return(RAND_SEED);
}
void random_start(void)
{
int temp[2];
movedata(0x0040,0x006c,FP_SEG(temp),FP_OFF(temp),4);
RAND_SEED=temp[0];
}
main()
{
unsigned int i,n;
random_start();
for(i=0;i<10;i++)
printf("%u\t",random());
printf("\n");
}
参考资料: http://post.baidu.com/f?kz=82767205
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.计算机不会产生绝对随机的随机数,计算机只能产生“伪随机数”。其实绝对随机的随机数只是一种。
2.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。
3.只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。
2.计算机的伪随机数是由随机种子根据一定的计算方法计算出来的数值。所以,只要计算方法一定,随机种子一定,那么产生的随机数就是固定的。
3.只要用户或第三方不设置随机种子,那么在默认情况下随机种子来自系统时钟。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-02-28
展开全部
水电费刚换就扣了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询