javascript - Javascript函数获取从1到100递增顺序的随机数
问题描述
我正在创建虚假统计实时数据,我需要显示网站上可用的用户数量在一场 5 分钟的游戏中,我想生成 1 到 100 范围内的随机数,但按递增顺序。这意味着我得到的每个数字都应该大于前一个。
预期输出:每个函数调用的输出将像 1,5,12,25,...,98,100,仅以随机和增量顺序排列。提前致谢。
我的代码:
randomnumber(fixed,count,range){
return fixed+count*range;
},
function(){
var count = 1;
this.socketData( ({ data }) => {
count++
data.data.totalUsers += this.randomnumber(50,count,Math.abs(Math.floor(Math.random() * (100 - 1) +1)));
}
解决方案
假设
因此,需要说明一些假设:
- 没有数字可以重复
- 数字必须是升序的
- 数字必须在 1 - 100(含)范围内
这意味着我们可以有 1x 条目,即[100]
最多 100 个条目[0,1,2,...98,99,100]
。
因此,要实施此策略,我们需要:
- 创建 X 个随机条目(根据需要修改种子 - 100 倍意味着我们允许所有场景,我选择随机化它)
- 对结果进行排序
- 删除重复项
TLDR;
下面是实现 - 适用于范围50 - 200
:
// range inclusive
const minRange = 1
const maxRange = 100
const rangePlusOne = maxRange - minRange + 1
// seed = [1 - 100]
const seedNumberOfEntries = parseInt(Math.random() * rangePlusOne) + 1
// generate, sort, unique
console.log([...new Set(
new Array(seedNumberOfEntries)
.fill(0)
.map(() => parseInt(Math.random() * rangePlusOne) + minRange)
.sort((a,b) => a-b)
)]
)
推荐阅读
- c - 返回函数中的关系值
- javascript - 如何检测可以完全适合预定义文本框长度的字符数?
- sql - Upsert 查询不适用于空值。如何在约束中使用空值进行更新?
- c - 如何将游戏数据压缩到一个文件中
- flutter - 如何在 Flutter 材质 app 菜单按钮上添加徽章?
- php - 如何在建立 Eloquent 关系时修复静态方法错误
- python - ModuleNotFoundError - 脚本和 REPL 之间的不同行为
- python - Django,gunicorn,nginx 抛出 504 Gateway Time-out: AttributeError: module 'static' has no attribute 'Cling'
- java - Java Stream 基于不同 ID 的平均值
- django - 如何在特定条件下随机选择django中的模型