You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中如何生成50到100这类指定区间内的随机数

指定区间随机数实现方案

首先纠正一个认知偏差:random.nextInt(100) 实际生成的是 [0, 100) 区间的整数,也就是0到99,并不包含100,这个方法的返回值始终满足「大于等于0,小于传入的边界值」的左闭右开规则。

要生成带偏移的指定区间随机数,核心思路是先生成对应区间长度的从0开始的随机数,再加上区间最小值作为偏移量即可。

对应50~100区间的实现

根据你是否需要包含100这个端点,分两种写法:

  • 场景1:需要包含50和100两个端点(可选值共51个:50、51……99、100)
Random random = new Random.secure();
// 区间长度为 100-50+1=51,生成[0,51)范围的数再加50偏移,最终落在[50,101)也就是50~100
int randomNumber = 50 + random.nextInt(51);
  • 场景2:只需要包含50,不包含100(可选值共50个:50、51……99,和你原代码的边界逻辑一致)
Random random = new Random.secure();
// 区间长度为100-50=50,生成[0,50)范围的数再加50偏移,最终落在[50,100)也就是50~99
int randomNumber = 50 + random.nextInt(50);

补充:new Random.secure()会生成加密安全的随机数生成器,适合令牌生成、抽奖等对随机性安全要求高的场景,普通无安全要求的业务场景使用普通Random实例即可。

内容的提问来源于stack exchange,提问作者mishalhaneef

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.20 16:15:51