怎样生成有一定相关度的随机数已有一个能生成0~1之间均匀分布的随机数的程序有没有什么算法能通过它生成两列有一定相关度的随机数列{Ai}{Bi}(如A1较大则B1也可能取一个较大值)但{Ai}{Bi

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 12:42:24

怎样生成有一定相关度的随机数已有一个能生成0~1之间均匀分布的随机数的程序有没有什么算法能通过它生成两列有一定相关度的随机数列{Ai}{Bi}(如A1较大则B1也可能取一个较大值)但{Ai}{Bi
怎样生成有一定相关度的随机数
已有一个能生成0~1之间均匀分布的随机数的程序
有没有什么算法能通过它生成两列有一定相关度的随机数列{Ai}{Bi}(如A1较大则B1也可能取一个较大值)
但{Ai}{Bi}仍分别满足在0~1间均匀分布
回1L5L,准确的说是Ai与Bi的取值有一定相关,但对于Ai数列和Bi数列各自分别‘看似’均匀分布随机数列,即Ai+1与Ai的取值无关。
回2L,我当然认同计算机只能生成伪随机数这一点,而且对计算机如何实现的生成伪随机数的原理也不存在疑问,你说“可以结合它和随机函数,再用一个合理的算法来构造一个你所需要的函数。”我所想知道的正是这个“合理的算法”
回3L6L,你们的做法太过随意(arbitrary),并且这样得到的两数列Ai与Bi的相关度大小不可调节
回4L,你说的这个办法我想过,但是这样得到的随机数列Bi不再满足0~1之间均匀分布的条件,因为两个相互独立的均匀分布随机数的和满足正态分布而非均匀分布

怎样生成有一定相关度的随机数已有一个能生成0~1之间均匀分布的随机数的程序有没有什么算法能通过它生成两列有一定相关度的随机数列{Ai}{Bi}(如A1较大则B1也可能取一个较大值)但{Ai}{Bi
这看似简单,实际上很难.
我能想到的唯一简单可行的办法,就是先生成一对相关的正态分布的变量,然后将两个正态分布转化为均匀分布.

楼上说得没错,计算机只能产生伪随机数;
你仔细想想,就是这个自然界也没有绝对意义上的随机现象;
任何一种自然现象都是各种因素共同作用的结果,
只是这些因素太多太复杂罢了。
当超过人们所需要的程度或可控范围,
人们就给此现象定性为随机,这种界线是模糊的;
要看实际需要来定。
看你对伪随机数的伪的程度要求有多高了!
很多程序里有伪随机函数...

全部展开

楼上说得没错,计算机只能产生伪随机数;
你仔细想想,就是这个自然界也没有绝对意义上的随机现象;
任何一种自然现象都是各种因素共同作用的结果,
只是这些因素太多太复杂罢了。
当超过人们所需要的程度或可控范围,
人们就给此现象定性为随机,这种界线是模糊的;
要看实际需要来定。
看你对伪随机数的伪的程度要求有多高了!
很多程序里有伪随机函数啊,大多是产生0~1之间的数,
只是产生的小数的精度有所不同,也可以设置的。
有一个可以产生各不相同的伪随机数母函数,
即是时间里的时刻,每一时刻的时间值都是不一样的,
我称之为伪随机数时间戳。
可以结合它和随机函数,
再用一个合理的算法来构造一个你所需要的函数。
您的问题我也不懂,纯粹调侃的话,楼主别生气!

收起

Bi=4/5 Ai+1/5 Ci
Ci也是 0-1的随即数
这个bi不就和Ai相关了么,而且Ai影响教大
随机数产生原理
通常有两种方法
1.平方取中法
1)从一个n位数x开始,称为种子
2)将它平方得到一个2n位数(必要时前面加0)
3)取中间的n位数做为下一个随机数
这种方法有一个缺点就是产生的随机数会趋向0
2....

全部展开

Bi=4/5 Ai+1/5 Ci
Ci也是 0-1的随即数
这个bi不就和Ai相关了么,而且Ai影响教大
随机数产生原理
通常有两种方法
1.平方取中法
1)从一个n位数x开始,称为种子
2)将它平方得到一个2n位数(必要时前面加0)
3)取中间的n位数做为下一个随机数
这种方法有一个缺点就是产生的随机数会趋向0
2.线性同余法
选择三个整数a,b,c,给定初始种子X(0)
按下列规则生成数列
X(n+1)=( a * X(n) + b )mod(c)
这种方式产生的随机数会出现循环
但是只要我们把c取得足够大就可以保证不会在我们运算中出现循环
很多计算机都是利用这个原理产生随机数的
只是c值取得很大,c=2^31

收起

A1较大则B1也取一个较大值.
你可以再0~1之间取随机数 Ai,
如果 Ai < 0.5,则 Bi 在 0~0.5 之间取;
如果 Ai > 0.5,则 Bi 在 0.5~1 之间取;
这样做可以吗?

Matlab:
Vi = randn([1,N+1]); % Normally distributed random numbers. chosen from a normal distribution with mean zero, variance one and standard deviation one.
Xi = [1:N+1]*0; % X(Nx1) vector with initial values set to zero

在Excel中
A1输入=RAND()
B1输入=RAND()
C1输入=IF(AND(B1-A1<0.4,A1-B1>-0.4),B1,1-B1)

{Ai}=random(a) (a|0≤a≤1)
{Bi}=random(b)^[random(a)^n] (b|0≤b≤1)
n为分布控制系数:
n=0时 {Bi}=random(b) 与a无关
n约大 random(a)^n 越趋向于0,则random(b)^[random(a)^n] 越趋向于1,但还是随机数

既然相关,何谈随机?
---------------------
当然计算机也只能产生伪随机数而已

怎样生成有一定相关度的随机数已有一个能生成0~1之间均匀分布的随机数的程序有没有什么算法能通过它生成两列有一定相关度的随机数列{Ai}{Bi}(如A1较大则B1也可能取一个较大值)但{Ai}{Bi C语言产生1-13的随机数我想做一个21点游戏,其中就包括一个,随机生成1-13的数,请问怎样设定生成随机数的范围,随机数的数目大概有10个 c#有没有函数能生成不重复的随机数,比如1-10之间的不重复随机数? 怎样在Excel按需求随机生成数怎样能生成固定数量的随机数?比如说,一列数,要求有40个1,60个2,怎样随机生成这一列数? Vb中Rnd生成一个随机数有什么用啊 生成一个6位的随机数,3000次,重复的机率有多大? java生成随机数java 点击按钮 生成一个1-55的随机数 并且随机数 有对应的 中文 如生成随机数 1 后面跟着“壹”字 接下去再生成的随机数不重复 按重置按钮后 重新开始生成我要代码 代码 不 怎样用catia模拟粗糙平面最好是利用随机数来模拟曲面的局部厚度,这样可以使粗糙程度更加逼真,最好是把怎样生成随机数或者怎样把随机数带入CATIA(最后得到的图形是一个长方体有一个面 请问vb中有没有生成随机数的函数? 怎样判断一个物质加热是否会有气体生成比如有铵根的物质加热是否一定能生成氨气?有碳酸根的加热是否一定能生成二氧化碳?如果没有具体的判别方法,请告诉我一些常见的加热生成气体的 随机数生成算法是怎样的 与 已 相关的成语那些成语当中有 已 写一个彩票程序:从1-30中随机生成7个随机数,不能重复,然后输入7个数,对比7个数是否与随机数有相同的, as的Math.random()怎样写能生成-5到5之间的随机数 需求:生成一个10位的随机数 如何生成一个32位的随机数 构造一个随机数生成器,要求生成0和1的概率相等有一个随机数生成器,生成0的概率是p,生成1的概率是1-p,p未知.用它构造一个随机数生成器,要求生成0和1的概率都是0.5 能和HCl反应生成CO2的盐有什么盐能和HCl反应生成CO2?能使澄清石灰水变浑浊的一定是CO2?第一个问题一定有CO3根?