Java中Math.random获取随机数

一、理解Math.random()随机数

系统默认该随机数范围0-1之间的double值,注意:这里的区间是[0,1)//也就是你取不到1

所以如果你在这里使用(int)Math.random() 只能得到一个数字0

二、扩大随机数取值范围

例:获取[50,100)之间的随机整数

int i=(int)(Math.random()*50+50);

//Math.random()只能获取0-1之间的double值,所以首先要获取0-50之间的随机数,所以*50,然后+50,随机数区间就会变为 [50,100) ,最后强制转换为int类型

三、怎样获取端点值

例:获取[50,100] 之间的随机整数,注意:这里要求取到50和100

long i=Math.round(Math.random()*50+50);

//取值范围改变原理同上,在没有使用Math.round之前是获得 [50,100) 的随机数

//Math.round()是四舍五入取整,所以可以达到所要的结果(区别强制转换为int类型:这是直接去整数部分

 

相关的取整还有

向上取整:Math.ceil(double a) 
向下取整:Math.floor(double a) 

有兴趣可以去查找相关资料

### Java 中 `Math.random()` 方法使用教程 #### 一、`Math.random()` 的基本功能 `Math.random()` 是 Java 提供的一个静态方法,用于返回一个带正号的双精度浮点型伪随机数 \( r \),其中 \( 0.0 \leqslant r < 1.0 \)[^1]。 #### 二、获取指定范围内的随机整数 为了生成特定区间内(比如 [min, max])的随机整数值,可以采用下面的方式: \[ \text{int result} = (\text{int})(\text{Math.random()} * (\text{max} - \text{min} + 1)) + \text{min}; \] 这里通过乘以区间的宽度并加上最小值来调整产生的随机数至所需范围内。 例如,要创建介于 0 到 30 (含两端点)之间的一个随机整数,则有如下代码片段所示: ```java // 获取[0, 30]之间的随机整数 int randomIntBetweenZeroAndThirty = (int)(Math.random() * 31); System.out.println(randomIntBetweenZeroAndThirty); ``` 对于更广泛的场景——即当需要生成任意两个边界 `[lowerBound, upperBound]` 上下限都可取到的随机整数时,上述公式同样适用。只需替换相应的变量即可满足不同上下界的设定需求。 考虑另一个例子,假设目标是在闭合区间 [30, 60] 内选取随机整数: ```java // 获得[30, 60]之间的随机整数 double randomDouble = Math.random(); int lowerBoundary = 30; int upperBoundary = 60; int randomNumberInRange = (int)((upperBoundary - lowerBoundary + 1) * randomDouble) + lowerBoundary; System.out.println(randomNumberInRange); ``` 值得注意的是,在某些情况下可能还需要引入额外逻辑处理边缘情况或确保分布均匀性等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值