用js写一个1-80之间的10个随机数,去重,从小到大排列的数组
时间: 2024-05-10 07:21:26 浏览: 9
以下是使用JavaScript编写的解决方案:
```javascript
// 生成10个1-80之间的随机数
let arr = [];
while (arr.length < 10) {
let num = Math.floor(Math.random() * 80) + 1;
if (arr.indexOf(num) === -1) {
arr.push(num);
}
}
// 从小到大排序
arr.sort(function(a, b) {
return a - b;
});
console.log(arr);
```
解释:
首先,我们使用一个 while 循环来生成10个1-80之间的随机数,并通过 indexOf 方法检查是否已经在数组中存在。如果不存在,则将其添加到数组中。
接下来,我们使用 sort 方法按升序对数组进行排序。sort 方法接受一个比较函数作为参数,该函数返回一个负数、零或正数,表示两个元素的相对顺序。
最后,我们使用 console.log 输出结果。
相关问题
用js写一个1-80之间的10个随机数
以下是使用 JavaScript 生成1-80之间的10个随机数的代码:
```javascript
// 生成10个随机数
for (var i = 0; i < 10; i++) {
var randomNum = Math.floor(Math.random() * 80) + 1;
console.log(randomNum);
}
```
解释:
- `Math.random()` 方法生成一个介于 0 和 1 之间的随机数。
- 乘以 80 后,得到一个介于 0 和 80 之间的随机数。
- `Math.floor()` 方法将随机数向下取整,得到一个介于 0 和 79 之间的整数。
- 加上 1 后,得到一个介于 1 和 80 之间的整数。
生成10个1-100之间100个随机数,并存放到一个数组中获取重复次数最多且最大的数
您好,这是一个计算问题,我可以为您提供代码实现:
```
import random
lst = [random.randint(1, 100) for i in range(100)] # 生成100个1-100之间的随机数
freq_dict = {}
max_count = 0
max_num = None
for num in lst:
if num in freq_dict:
freq_dict[num] += 1
else:
freq_dict[num] = 1
if freq_dict[num] > max_count:
max_count = freq_dict[num]
max_num = num
elif freq_dict[num] == max_count and num > max_num:
max_num = num
print(f"重复次数最多且最大的数为 {max_num},重复次数为 {max_count}")
```
这段代码会生成100个1-100之间的随机数,并将它们存放在lst列表中。然后,程序会遍历这个列表并将每个数字出现的次数存放在freq_dict字典中。最后,程序会遍历freq_dict字典,找到出现次数最多的数字,并将其存放在max_num变量中。如果出现次数相同,程序会选择数字更大的那个。最终,程序会返回重复次数最多且最大的数字及其出现次数。