s*****o 发帖数: 1262 | 1 比如我有两个变量,a和b
每次a变化,b有80%的几率获得和a一样的值(一起变化),20%的几率获得任意其他值
(或者不变)。
用matlab编程的话,我实在想不到简单的办法。
一个笨办法是产生一个0~1之间随机数,这个数小于0.8则b=a;大于0.8则b随机产生不
等于a的任意数字
请高手指点以下 |
m*********g 发帖数: 273 | 2 直接产生随机数,以20%的几率变为a。 b本身就是随机的,你不需要再生成一次随机
数。 |
s****n 发帖数: 786 | 3 你学过概率论没有?
正太分布会吧?
【在 s*****o 的大作中提到】 : 比如我有两个变量,a和b : 每次a变化,b有80%的几率获得和a一样的值(一起变化),20%的几率获得任意其他值 : (或者不变)。 : 用matlab编程的话,我实在想不到简单的办法。 : 一个笨办法是产生一个0~1之间随机数,这个数小于0.8则b=a;大于0.8则b随机产生不 : 等于a的任意数字 : 请高手指点以下
|
s******n 发帖数: 6806 | 4 这个用不着正态分布
【在 s****n 的大作中提到】 : 你学过概率论没有? : 正太分布会吧?
|
s*******n 发帖数: 730 | 5 就这样,第二步不需要 != a。
或者你可以只产生一个随机数,scale到你需要的区间的125%,然后落在25%用a,落在
需要的区间用
该随机数。明白?都一样啦,很简单的问题。
【在 s*****o 的大作中提到】 : 比如我有两个变量,a和b : 每次a变化,b有80%的几率获得和a一样的值(一起变化),20%的几率获得任意其他值 : (或者不变)。 : 用matlab编程的话,我实在想不到简单的办法。 : 一个笨办法是产生一个0~1之间随机数,这个数小于0.8则b=a;大于0.8则b随机产生不 : 等于a的任意数字 : 请高手指点以下
|
r****t 发帖数: 10904 | 6 你说的这个笨办法就是标准办法,表听那些人的。
【在 s*****o 的大作中提到】 : 比如我有两个变量,a和b : 每次a变化,b有80%的几率获得和a一样的值(一起变化),20%的几率获得任意其他值 : (或者不变)。 : 用matlab编程的话,我实在想不到简单的办法。 : 一个笨办法是产生一个0~1之间随机数,这个数小于0.8则b=a;大于0.8则b随机产生不 : 等于a的任意数字 : 请高手指点以下
|
s*****o 发帖数: 1262 | 7 thanks for all responses.
for siphon: i don't think normal distribution will work for my case. uniform
distribution will do.
thanks to repast. |