我的任务是产生-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,1)具有随机数。 但是你需要在随机数(A,B)。
解
您只需扩展和改变你的时间间隔。
缩放间隔:所述间隔(A,B)是BA的大小/长度。 重新调整的时间间隔你有BA乘以所有的随机值。
按住Shift键的时间间隔:当你攀登的时间间隔你在区间(0,BA)有一个数字。 您只需添加的数量将它转换所有的数字。 这将导致随机数在区间(A,B)。
什么你指的是被称为“ 线性插值 ”。 在一些图书馆也被称为lerp
,通常它的实现
float lerp(float v0, float v1, float t) {
return v0+(v1-v0)*t
}
所以你的情况v0
是-2, v1
是7和t
是0和1之间要插值值。
numbers = random('unif', -2, 5, 1, 1000);
count = sum(numbers > 2 & numbers < 3);