gpt4 book ai didi

javascript - 在一个区间内生成两个随机数数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:45:52 26 4
gpt4 key购买 nike

我想使用一个函数来生成两个相同长度的数组,但第一个和第二个数组的值不应该重复,并且第一个数组中的值不应该在第二个数组中。

到目前为止我尝试了什么:

function generateSiruri(width){
var exists = false;
for(var i = 0; i < width; i++){
var randomNumber = Math.floor(Math.random()*101);
var secondRandomNumber = Math.floor(Math.random()*101);

if(sir1[i] == randomNumber && sir2[i] == secondRandomNumber && randomNumber == secondRandomNumber && sir1[i] == secondRandomNumber){
exists = true;
return;
}

if(!exists){
sir1.push(randomNumber);
sir2.push(secondRandomNumber);
}
}
sortAscending(sir1);
sortAscending(sir2);
}

function sortAscending(array){
var sort;
for(i = 0; i < array.length; i++){
for(var j = 0; j < array.length; j++){
if(array[j] > array[j + 1]){
sort = array[j];
array[j] = array[j + 1];
array[j + 1] = sort;
}
}
}
return;
}

此外,如果您有更好的选择来使用 sortAscending 函数对这些数组进行排序,以及更好的 if condition in generateSiruri 选项,请提出建议。我现在看不到更好的选择。谢谢!

最佳答案

这样做:

    while(sir1.length < width) {
var randomNumber = Math.floor(Math.random()*101);
if (sir1.indexOf(randomNumber) == -1)
sir1.push(randomNumber);
}

while(sir2.length < width) {
var randomNumber = Math.floor(Math.random()*101);
if ((sir2.indexOf(randomNumber) == -1) && (sir1.indexOf(randomNumber) == -1))
sir2.push(randomNumber);
}

这样,您首先用唯一值填充 sir1,然后分别用 sir1 中没有的唯一值填充 sir2。

关于javascript - 在一个区间内生成两个随机数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27506063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com