关于计算机取随机数的工作原理?

呵呵!不要被我的问题吓到,不是要问太专业的计算机问题,下面说一下简单的例子。记得中学时用过一种学习辅助型计算器(有别于商店里算账用的普通计算器,是有三角函数,科学计数法的... 呵呵!不要被我的问题吓到,不是要问太专业的计算机问题,下面说一下简单的例子。
记得中学时用过一种学习辅助型计算器(有别于商店里算账用的普通计算器,是有三角函数,科学计数法的那种),其中有一个操作是这样的;首先设置好取数范围,如:1—10,然后按一下确定键,这样每按一次确定键计算器就会随机给出1—10中的一个数,如此反复数百次,你就会发现每个数的出现几率都是1/10.(上概率课时老师教过这种验证方法)
这里要问的是计算器是如何在内部实现随机取数的?程序的最初设置者如何保证计算器的每次取数都具有代表性(公正)?
我给出我的一个设想:程序设置者给出一个循环程序,程序中包括X1、X2、X3……N个未知数,当输入取数范围是,程序自动把X1、X2、X3……一一定义。如X1—X10分别定义为1—10.然后循环程序在X1到X10中不断匀速运作(形象一点就是一个光标不断地在X1—X10中以每次0.001秒延迟的速率在其中循环游走),当使用者按下确定键时,光标在那个数字上那么就会输出那个数字,从而实现随机取数。
不知以上设想数否正确(接近),十分期待高手大虾们指点。说明是可以说的形象点,这样容易明白。
万分感谢!
展开
 我来答
vbtraz
2009-12-09 · TA获得超过5533个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4548万
展开全部
你是要问计算机还是计算器

计算机一般只用伪随机数函数来取伪随机数(就是说这一系列数都是算出来的,其实不是随机的,只不过这个算法尽量让结果看起来比较散)。 当然也有利用输入来取随机数的做法(比如SecureCRT), 但是用的非常少, 因为这时候需要你猛晃鼠标什么的, 对用户来说太别扭。
其实一两个随机数从输入取还是可行的, 只不过很多时候是需要一系列的随机数, 这时候指望输入就没戏了,还是伪随机数方法来的通用些

至于计算器, 不知道, 估计也就是伪随机数函数
Sievers分析仪
2025-04-08 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
海狮2D
2009-12-09 · TA获得超过3021个赞
知道大有可为答主
回答量:1904
采纳率:55%
帮助的人:1060万
展开全部
那样是不行的,现在的电脑上一般都是伪随机数。
实际上当你取了很多以后会循环的(一般是2^32至2^64为一个循环)
开始的时候使用srand,这个函数会和当前时间有关。

普通算法(摘自POSIX,就是一个例子)
static unsigned long next = 1;
int myrand(void) /* RAND_MAX assumed to be 32767. */
{
next = next * 1103515245 + 12345;
return((unsigned)(next/65536) % 32768);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
答题狂魔想升级
推荐于2017-09-08 · 知道合伙人游戏行家
答题狂魔想升级
知道合伙人游戏行家
采纳数:9081 获赞数:86426
DNF7年玩家,现主玩修罗,同时获得搜狗问问DNF专家头衔。

向TA提问 私信TA
展开全部
在计算机中并没有一个真正的随机数发生器,但是可以做到使产生的数字重复率很低,这样看起来好象是真正的随机数,实现这一功能的程序叫伪随机数发生器。
不管用什么方法实现随机数发生器,都必须给它提供一个名为“种子”的初始值。而且这个值最好是随机的,或者至少这个值是伪随机的。“种子”的值通常是用快速计数寄存器或移位寄存器来生成的。

下面是C语言里所提供的随机数发生器的用法。现在的C编译器都提供了一个基于ANSI标准的伪随机数发生器函数,用来生成随机数。它们就是rand()和srand()函数。这二个函数的工作过程如下:
【1】首先给srand()提供一个种子,它是一个unsigned int类型,其取值范围从0~65535;
【2】然后调用rand(),它会根据提供给srand()的种子值返回一个随机数(在0到32767之间);
【3】根据需要多次调用rand(),从而不间断地得到新的随机数;
【4】无论什么时候,都可以给srand()提供一个新的种子,从而进一步“随机化”rand()的输出结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式