我试图在100到1000之间找到10个随机数,如果任何数字相等,那么我需要让计算机选择不同的随机数。有谁知道怎么做?
<script type="text/javascript">
var numbers=[];
var max=110;
var min=100;
numbers [1]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [2]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [3]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [4]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [5]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [6]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [7]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [8]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [9]= Math.floor(Math.random() * (max - min + 1)) + min;
numbers [10]= Math.floor(Math.random() * (max - min + 1)) + min;
do (numbers[2]);
while (numbers[1]===numbers[2]);
do (numbers[3]);
while (numbers[1] == numbers[3])
(numbers[2] == numbers[3]);
for (i in numbers){
document.writeln("<br>"+numbers[i]);
}
</script>
答案 0 :(得分:2)
您可以使用类似
的内容<script>
var foo = {}
while (Object.keys(foo).length < 10) {
foo[Math.floor(Math.random() * (max - min + 1)) + min] = true;
}
var numbers = Object.keys(foo);
</script>
答案 1 :(得分:2)
var numbers = [];
var max = 1000;
var min = 100;
while (numbers.length < 10) {
var num = Math.floor(Math.random() * (max - min + 1)) + min
if(numbers.indexOf(num)!= -1){
numbers.push(num)
}
}
答案 2 :(得分:1)
使用此代码:
var numbers = [];
var max = 110;
var min = 100;
while (numbers.length != 10) {
var number = Math.floor(Math.random() * (max - min + 1)) + min;
var exists = false;
for (var i = 0; i < numbers.length; i++) {
if (number == numbers[i])
exists = true;
}
if (!exists)
numbers.push(number);
}
console.log(numbers);
答案 3 :(得分:1)
您可以继续检查重复的数字,因为在您的情况下它们并不经常出现,但在这种情况下我会实现随机种子,因为您根本不需要检查重复数。 / p>
您要做的就是用自定义随机函数替换Math.random
并删除所有不必要的while循环。
示例:
var seed = Math.random();
var random = function(){
return parseFloat('0.'+Math.sin(++seed).toString().substr(6));
};
var r = [];
for(var i=0; i < 10; i++){
r[i] = random();
}
document.body.textContent = r.join(' ');
详细了解random seeds