我的任务是在-2到5之间生成5000个随机数 然后计算这些值中有多少在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
所以-2 =每个= 7-2,但如果数字介于5,6或之间,我会完全理解如何再次应用它6和1。
答案 0 :(得分:2)
您在区间(0,1)中有随机数。但是你需要(a,b)中的随机数。
您只需缩放和移动间隔。
缩放间隔: 间隔(a,b)的大小/长度是b-a。要重新缩放间隔,必须将所有随机值乘以b-a。
改变间隔: 缩放间隔时,间隔中有数字(0,b-a)。您只需通过添加数字a来移动所有数字。这导致区间(a,b)中的随机数。
答案 1 :(得分:1)
您所指的是" Linear Interpolation"。在某些库中,它被称为lerp
,通常它已经实现
float lerp(float v0, float v1, float t) {
return v0+(v1-v0)*t
}
因此,在您的情况下,v0
为-2,v1
为7,t
为您想要插值的0到1之间的值。
答案 2 :(得分:0)
numbers = random('unif', -2, 5, 1, 1000);
count = sum(numbers > 2 & numbers < 3);