随机生成100个0到50的整数,遇到包含3或者7的数则保存为集合形式,其他数值保存成列表形式。输出集合元素和集合大小,列表元素和大小
时间: 2023-06-05 14:04:23 浏览: 152
抱歉,我可以回答这个问题。下面是Python代码实现:
```
import random
nums_set = set()
nums_list = []
for i in range(100):
num = random.randint(0, 50)
if '3' in str(num) or '7' in str(num):
nums_set.add(num)
else:
nums_list.append(num)
print("集合元素和:", sum(nums_set))
print("集合大小:", len(nums_set))
print("列表元素和:", sum(nums_list))
print("列表大小:", len(nums_list))
```
提示:这段代码使用了Python中的随机数生成函数`random.randint(a, b)`,用于生成a到b之间的随机整数,包含ab。`str(num)`将整数转换为字符串,用于检查是否包含数字3或7。`set()`可以创建一个集合,`add()`可以添加元素到集合中,`list()`可以创建一个列表。`sum()`可以计算序列中所有元素的和,`len()`可以计算序列的长度。
相关问题
- 生成一万个随机正整数 - 随机数的数值范围是0-999 - 将生成的一万个随机数放到Set类型的集合对象中 - 控制台打印Set类型集合对象中,没有的 1000以内的 正整数,以及这些没有的正整数的个数
```java
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
Random random = new Random();
for (int i = 0; i < 10000; i++) {
int num = random.nextInt(1000);
set.add(num);
}
int count = 0;
for (int i = 0; i < 1000; i++) {
if (!set.contains(i)) {
System.out.println(i);
count++;
}
}
System.out.println("共有 " + count + " 个正整数没有出现在集合中。");
}
}
```
输出结果类似如下:
```
2
10
12
...
991
994
995
996
999
共有 304 个正整数没有出现在集合中。
```
请帮我设计一个数据生成器,随机生成1~M范围内的N个整数,输入参数包括N,M,T;可随机生成一个大小为N、数值范围在[1, M]之间,类型为T的数据集合;T包括三种类型(顺序递增、顺序递减、随机取值)
以下是一个Python实现的数据生成器:
```python
import random
def generate_data(N, M, T):
if T == "顺序递增":
return list(range(1, N+1))
elif T == "顺序递减":
return list(range(N, 0, -1))
else:
return random.sample(range(1, M+1), N)
```
使用方式如下:
```python
N = 10 # 生成10个数
M = 100 # 数值范围为1~100
T = "随机取值" # 数据类型为随机取值
data = generate_data(N, M, T)
print(data)
```
输出结果可能为:
```
[57, 83, 36, 74, 87, 12, 9, 69, 67, 21]
```
阅读全文