我的任务是生成5000个介于-2和5之间的随机数,然后计算这些值中有多少介于2和3之间,这是到目前为止我得到的结果:
randNums=rand(1,5000); %Generate 5000 random values between 0 and 1
randNums=randNums*7-2; %Get those random values to be between -2 and 5
我知道7*1=7
和0*7=0
so -2分别等于7-2,但我不能完全理解如果数字在5,6或-6和1之间,如何再次应用它。
发布于 2013-03-14 22:19:55
我的问题解释
在区间(0,1)中有随机数。但是你需要(a,b)中的随机数。
解决方案
你只需要调整和改变你的间隔。
缩放间隔:间隔(a,b)的大小/长度是b-a。要重新调整间隔,您必须将所有随机值与b-a相乘。
移动间隔:当您缩放间隔时,在间隔(0,b-a)中有数字。您只需将数字a添加到所有数字上即可将其移位。这导致区间(a,b)中的随机数。
发布于 2013-03-14 22:29:43
你所指的是"Linear Interpolation“。在一些库中,它被称为lerp
,并且通常被实现
float lerp(float v0, float v1, float t) {
return v0+(v1-v0)*t
}
因此,在您的示例中,v0
为-2,v1
为7,t
是您要插值的0到1之间的值。
发布于 2013-03-14 22:36:23
numbers = random('unif', -2, 5, 1, 1000);
count = sum(numbers > 2 & numbers < 3);
https://stackoverflow.com/questions/15411585
复制相似问题