首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在两个集合数字之间生成随机值

在两个集合数字之间生成随机值
EN

Stack Overflow用户
提问于 2013-03-14 22:08:36
回答 3查看 6.2K关注 0票数 1

我的任务是生成5000个介于-2和5之间的随机数,然后计算这些值中有多少介于2和3之间,这是到目前为止我得到的结果:

代码语言:javascript
运行
复制
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=70*7=0 so -2分别等于7-2,但我不能完全理解如果数字在5,6或-6和1之间,如何再次应用它。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-14 22:19:55

我的问题解释

在区间(0,1)中有随机数。但是你需要(a,b)中的随机数。

解决方案

你只需要调整和改变你的间隔。

缩放间隔:间隔(a,b)的大小/长度是b-a。要重新调整间隔,您必须将所有随机值与b-a相乘。

移动间隔:当您缩放间隔时,在间隔(0,b-a)中有数字。您只需将数字a添加到所有数字上即可将其移位。这导致区间(a,b)中的随机数。

票数 2
EN

Stack Overflow用户

发布于 2013-03-14 22:29:43

你所指的是"Linear Interpolation“。在一些库中,它被称为lerp,并且通常被实现

代码语言:javascript
运行
复制
float lerp(float v0, float v1, float t) {
    return v0+(v1-v0)*t
}

因此,在您的示例中,v0为-2,v1为7,t是您要插值的0到1之间的值。

票数 1
EN

Stack Overflow用户

发布于 2013-03-14 22:36:23

代码语言:javascript
运行
复制
numbers = random('unif', -2, 5, 1, 1000);
count = sum(numbers > 2 & numbers < 3);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15411585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档