如何在javascript中每5个数字的范围内生成随机数
我希望在315的范围内每5个随机数。 所以结果应该是这样的: 2(从1到5) 7(从6日至10日) 11(从11日至15日) 16(从16岁到20岁) 24(从21日至25日) 29(从26日至30日) 33(从31日至35日) 36(从36岁到40岁)…依此类推到315岁 为了获得更清晰的视图,我提供了3个示例序列:如何在javascript中每5个数字的范围内生成随机数,javascript,html,Javascript,Html,我希望在315的范围内每5个随机数。 所以结果应该是这样的: 2(从1到5) 7(从6日至10日) 11(从11日至15日) 16(从16岁到20岁) 24(从21日至25日) 29(从26日至30日) 33(从31日至35日) 36(从36岁到40岁)…依此类推到315岁 为了获得更清晰的视图,我提供了3个示例序列: 1,6,14,20,23,27,31,39 3,8,15,16,22,29,32,37 1,10,14,19,21,30,33,36 我尝试了以下代码: <button o
<button onclick="document.getElementById('demo').innerHTML = getRndInteger(1,5); document.getElementById('demo1').innerHTML = getRndInteger(6,10)">Click Me</button>
<p id="demo"></p>
<p id="demo1"></p>
<script>
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
</script>
点击我
函数getRndInteger(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
但对于这一点,我需要为所有63个间隔创建。
有人知道如何简化吗?
在315之前,我需要5个数字的每一个数字。
有人能帮我吗?你可以试试这样的东西(我没有测试,但我想到了):
函数randomIntFromInterval(最小,最大){//min和max包括在内
var i=最小值;
变量数=[]
对于(i;i
假设第一个数字可以是从1到315的任何整数
之后,后面的数字等于前一个数字+5
var firstNumber=0;
函数randomIntFromInterval(最小值、最大值){
var randomNumber=Math.floor(Math.random()*(max-min+1)+min);
var结果=[randomNumber];
而(randomNumber+5您可以以5的增量迭代外部范围,并取最大5的随机偏移量
for(设i=0,l=315;i这里有一种简单的方法,可以在5的范围内(包括前面提到的边界)生成随机数,直到达到最大值
运行示例:
函数随机整数(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
函数示例(){
var最大值=21;
var generatedNumbers=[];
对于(var iteration=1;iteration+1来说,编程的本质是将问题分解为更小的部分,然后构建完整的解决方案
在这种情况下,我们可以这样分解问题:
Math.floor(1 + 4 * Math.random())
创建一组63个乐队:1到5,6到10,等等
在每个波段中选择一个随机数
对于第2部分,您已经有了问题中显示的getRndInteger
函数:
function getRndInteger(min, max) {
return Math.floor(Math.random() * (max - min + 1) ) + min;
}
第1部分可以通过几种方式完成,但最容易理解的可能是一个简单的while
循环:
min=1;
设max=5;
(max你可以这样想。当Math.random()生成0时,得到1。而Math.random()生成1时,得到5。所以你可以这样编写这个函数:
Math.floor(1 + 4 * Math.random())
所以你可以这样生成
for(设i=0;i必须循环以查找所需范围内的所有随机数,更改每个循环中的最大值和最小值。由于所有数字都是请求的,因此必须将它们添加到数组中
<button onclick="document.getElementById('demo').innerHTML = randomIntFromInterval()">Click Me</button>
<p id="demo"></p>
function randomIntFromInterval() {
// min and max included
let min=0;
let max=5;
let numberOfList=[];
for(let i=0;i<63;i++){
let randomNumber= Math.floor(Math.random() * (max - min +1) + min);
numberOfList.push(`${randomNumber}`);
min=min+5;
max=max+5;
} return numberOfList;
}
点击我
函数randomIntFromInterval(){
//包括最小值和最大值
设min=0;
设max=5;
设numberOfList=[];
对于(设i=0;i,为了简单性和加密安全性:
for(var i=1;i)“每5个数字”是什么意思?NinaScholz的意思是1到5、6到10、11到15、16到20等等。第一个数字可能是1
或2
或任何数字。然后,下一个数字就是上一个数字+5
?这回答了你的问题吗?我肯定这很令人沮丧,因为这在你的头脑中是清楚的,但你需要深呼吸,然后重新思考更清楚地解释你想做什么。提供多个可能的序列会很有用,这样我们就不会在一个示例中被意外模式误导。哦,不,结果可能是3 10 17
?不是每次都是+5
:(@StackOverFlow,不必。请看op的示例。我刚刚运行了几次,其中一次包括序列“22,27,36,42”我不认为它符合OP的要求——注意中间的9跳。哦,我现在看到了错误:你在每个循环中加上一个固定的偏移量5和一个随机的偏移量,每个时间都在5到10之间,这永远不会产生例子序列2,7,11。(第二个和第三个数字之间的偏移量为4)。对问题进行了编辑,以澄清序列不是每次加5。@StackOverFlow谢谢,但我需要一系列数字。单击一次,所有序列都应该显示出来。@KhushbuVaghela,正如我在回答中提到的,始终分解您的问题:序列是否一次输出一个项目,推入数组,构建into一个带逗号的字符串;无论它是由点击触发的,还是在页面加载时触发的,或是在时钟敲响12点时触发的……所有这些都是您可以根据本页面上的任何建议进行更改的详细信息。请先确定算法的正确性,然后您可以随心所欲地重用它。@IMSoP是的,但该系列仍然不是从1开始到5!而且它始终是正确的我加了5个,但我没有want@KhushbuVaghela当然,我不是说这一定是正确的算法,我只是想强调将算法与它们的使用方式分开看待的重要性。为什么你要排除1和5?我在任何地方都看不到问题中提到的。是的,谢谢,编辑了它。也许这些例子让我觉得f it:P现在我看到OP添加了包括边框数字在内的示例;)谢谢,这就是我想要的@Deepak@Phong这是预期的结果。希望您阅读OP提供的所有示例:)@KhushbuVaghela您需要用生成的数字附加字符串吗?如果需要,只需将生成的数字存储在一个变量中,并在将其推送到数组之前附加字符串为什么从65开始到70?我不确定。似乎有问题