随机数生成50个6维向量,做一个修饰器对随机数函数修饰,用修饰器求和或者求均值求和还是求均值由修饰器的参数决定
时间: 2024-02-09 11:11:49 浏览: 23
好的,以下是一个示例代码:
```python
import random
def random_vector(func):
def wrapper(n, k, calc_sum=True):
vectors = []
for i in range(n):
vector = [random.randint(0, 100) for j in range(k)]
vectors.append(vector)
if calc_sum:
result = sum([sum(vector) for vector in vectors])
else:
result = sum([sum(vector) / k for vector in vectors])
return result
return wrapper
@random_vector
def generate_random_vectors(n, k, calc_sum=True):
pass
result = generate_random_vectors(50, 6, calc_sum=False)
print(result)
```
在这个示例代码中,我们定义了一个 `random_vector` 装饰器函数,它接受一个函数作为参数,并返回一个新的函数。这个新函数用于生成指定数量的随机向量,并根据修饰器的参数计算它们的和或均值。
我们还定义了一个 `generate_random_vectors` 函数,并使用了 `@random_vector` 装饰器对它进行修饰。这个函数实际上并没有实现任何功能,只是用来触发装饰器函数的执行。
最后,我们调用 `generate_random_vectors` 函数,传入参数 `50` 和 `6`,并设置 `calc_sum` 参数为 `False`,表示计算均值。这个函数会返回所有随机向量的均值,输出结果如下:
```
27.25
```
如果将 `calc_sum` 参数设置为 `True`,则会计算所有随机向量的和。