生成一个包含1000个介于1和10之间的随机数的列表,然后计算删除的七个数字的数量



我有一个学校项目,我正在努力解决这个问题。。

该项目是生成一个由1000个介于1到10之间的随机数组成的列表,然后删除该列表中的每个7的实例。但棘手的是,我们应该计算删除的7的数量,并将其打印到控制台。。。

有什么想法吗?

这不是我的代码,只是我在玩的东西,但这是我到目前为止得到的。

<!-- Document Required Information -->
<!doctype html>
<!-- Language & Input Types -->
<html lang="no">
<meta charset="utf-8">
<!-- utf-8 gjør at vi kan bruke æ, ø og å -->
<head>
<title> Oppgave 3 Prøve 3D - 3F - Julian </title>
</head>
<body>
<script>
function getRandomExcept(min, max, except) {
except.sort(function(a, b) {
return a - b;
});
var random = Math.floor(Math.random() * (max - min + 1 - except.length)) + min;
var i;
for (i = 0; i < except.length; i++) {
if (except[i] > random) {
break;
}
random++;
}
return random;
}
(function(min, max, except) {
var iterations = 1000;
var i;
var random;
var results = {};
for (i = 0; i < iterations; i++) {
random = getRandomExcept(min, max, except);
results[random] = (results[random] || 0) + 1;
}
for (random in results) {
console.log("Antall 7 Fjernet " + except.length + " Tall: " + random + ", Antall: " + results[random] + ", sjanse: " + results[random] * 100 / iterations + "%");
}
})(1, 10, [7]);
</script>
</body>
</html>

这是一个简单的解决方案:

// Start with an empty array
let numbers = [];
// Do a for loop where you generate your 1000 numbers 
for(let i = 0; i < 1000; ++i) {
// Math.random() return a floating number from 0 to 1 (exclusive), if you multiply it by 10
// you get a floating number between 0 and 10 (exclusive). Math.floor() cuts the decimal part
// giving you an integer number between 0 and 9, so you add 1 to get a number between 1 and 10
numbers.push(Math.floor(Math.random() * 10) + 1);
}
// You can use filter to remove the sevens
numbers = numbers.filter(el => el !== 7);
// Then you can just compare the length of the array
const removed = 1000 - numbers.length;
console.log(removed);

相关内容

最新更新