javascript - 生成特定范围内的随机数并使用特定数字?
问题描述
如何生成特定范围内的随机数并使用特定数字?
给定数字 [7,8] 的示例;给定范围[100-900];输出必须是其中之一 777、787、788、878、877、888 等...
帮我
const randomGenerateNumber = (maxRange:number, minRange:number, numbers:number[]) => {
//...what should i do in there??? Help me? Any Idea?
}
解决方案
我想你不想要随机数。似乎您想要一组基于某些规则的数字。随机意味着别的东西。
如果我很好地理解您的问题,您想生成所有可能的数字,其中仅包含一系列数字中的一组数字。这是一个准确的描述吗?
如果是这样,这与您想要的类似:Generate random numbers only with specific digits
编辑:
你是对的,所以你只想要一个数字。在 javascript 中,您可以执行以下操作:
我编辑了算法,以可能最懒惰的方式考虑了最小值和最大值。我没有考虑无法生成数字的情况,它将返回未定义。
有很多方法可以做到这一点。您的算法也可以工作,并且可能更有效,但它似乎有 0 的问题,即使它不在数字数组中,它也会生成 0 的数字。
function randomGenerateNumber(minRange, maxRange, digits){
noTries = 0;
while(noTries++ < 100000)
{
var num = 0;
//get a random number from your range
len = Math.floor(Math.random() * (maxRange - minRange) + minRange);
//get the lenght of that random number
len = len.toString().length;
//generate a number with that length using only your set of digits
while(len--)
{
num = num * 10 + digits[Math.floor(Math.random() * digits.length)];
}
if(num >= minRange && num<= maxRange)
{
return num;
break;
}
}
}
//your testing cases
console.log(randomGenerateNumber(100,900,[7,8]))
console.log(randomGenerateNumber(299,300,[1,2,3,4,5,6,7,8,9]));
推荐阅读
- php - 如何在WordPress中按字母顺序对类别帖子进行排序?
- javascript - toFixed(2) 不四舍五入?
- javascript - setTimeout() 运行函数但日期未更新
- c# - 如何在 DbContext 中将 Created By 设置为 enitites
- c# - 如何从外键获取值以使用关联值填充列表?
- typescript - 使用 PrimeNg 和 Typescript 在 Angular6 中完成上传后如何在浏览器中查看 pdf 文档
- python - 无外键约束加入
- powershell - Powershell 识别安装了两次相同驱动程序的机器
- css - IE 上的线性渐变
- angularjs - 如何将会话存储值设置为 Angular JS 中的下拉选择字段