在m个数字中随便选择n个数字,JavaScript实现
时间: 2023-10-02 19:04:26 浏览: 125
可以使用递归的方式来实现从m个数字中随机选择n个数字的操作,具体实现代码如下:
```javascript
function combination(m, n) {
if (n === 0 || n === m) {
// 如果n等于0或者n等于m,直接返回1
return 1;
} else {
// 递归计算组合数
return combination(m - 1, n - 1) + combination(m - 1, n);
}
}
function pickNumbers(m, n) {
const result = [];
// 构建初始数组
const arr = [];
for (let i = 1; i <= m; i++) {
arr.push(i);
}
// 从数组中随机选择n个数字
while (result.length < n) {
const randomIndex = Math.floor(Math.random() * arr.length);
result.push(arr[randomIndex]);
arr.splice(randomIndex, 1);
}
return result;
}
const m = 10; // 总数字个数
const n = 3; // 随机选择的数字个数
console.log(`从${m}个数字中随机选择${n}个数字:`);
console.log(pickNumbers(m, n));
console.log(`共有${combination(m, n)}种不同的选择组合。`);
```
其中,`combination`函数用于计算组合数,`pickNumbers`函数用于从m个数字中随机选择n个数字。最后输出选择的数字以及不同的选择组合数。
阅读全文