【发布时间】:2020-09-14 04:32:12
【问题描述】:
我正在解决一些 python 问题,并且一直在努力解决这个任务。我需要生成填充自然数的矩阵 N x N,其中:
- 每行数字的平均值是自然数,存在于 那一行
- 每列数字的平均值是自然数,即 出现在该列中
- 矩阵中的所有数字都不同
到目前为止,我已经生成了矩阵并尝试使用random.choice,但我没有看到一种方法来处理它,以便行和列在该行/列中都有平均值。
这是我的代码:
import random
used_numbers = []
matrix = []
matrix_done = False
rows_generated = 0
n = int(input("please enter number for nxn matrix: "))
start = 1
max_n = n
while(matrix_done is False):
row = random.sample(range(start, max_n + 1), n)
average = sum(row) / len(row)
print("row", row, average)
start = max_n + 1
max_n = max_n + n
print("start***", start, max_n)
matrix.append(row)
if(average > 0 and average.is_integer()):
print("is integer true")
rows_generated += 1
if(rows_generated == n):
matrix_done = True
for row in matrix:
print(row)
【问题讨论】: