生成4*4的[0 50]上的随机数组B,用至少两种办法把B中大于30的元素求和以及求乘积
时间: 2024-09-18 15:03:38 浏览: 63
首先,让我们创建一个4x4的二维数组B,其中每个元素都是0到50之间的随机整数。然后我们将使用两种方法计算数组中所有大于30的元素的和与乘积。
**方法一:使用列表推导式求和和乘积**
```python
import random
# 创建4x4的随机数组
B = [[random.randint(0, 50) for _ in range(4)] for _ in range(4)]
# 过滤并计算大于30的元素之和
sum_greater_30 = sum(num for row in B for num in row if num > 30)
# 初始化一个变量用于存储大于30的元素乘积(初始值为1)
product_greater_30 = 1
for row in B:
for num in row:
if num > 30:
product_greater_30 *= num
print("大于30的元素之和:", sum_greater_30)
print("大于30的元素乘积:", product_greater_30)
```
**方法二:使用numpy库(如果安装了numpy)求和和乘积**
```python
if not numpy: # 检查是否已安装numpy,没有的话忽略这段代码
raise ImportError("Numpy is required to perform this operation.")
import numpy as np
# 使用numpy创建数组
B = np.random.randint(0, 51, size=(4, 4))
# 计算大于30的元素之和
sum_greater_30 = np.sum(B[B > 30])
# 初始化一个变量用于存储大于30的元素乘积
product_greater_30 = 1
indices = np.where(B > 30)
product_greater_30 = np.prod(B[indices])
print("大于30的元素之和:", sum_greater_30)
print("大于30的元素乘积:", product_greater_30)
```
阅读全文