小红想让你构造一个行列的矩阵,矩阵中的元素为1到,每个数只出现1次。小红希望每个的子矩阵中元素之和均为奇数,你能帮帮她吗?
区块链毕设网qklbishe.com为您提供问题的解答
小红想让你构造一个行列的矩阵,矩阵中的元素为1到,每个数只出现1次。小红希望每个的子矩阵中元素之和均为奇数,你能帮帮她吗?
def get_matrix(n): # 通过观察可知,输出矩阵必须满足 # 左边第一列必须全是奇数 # 之后的列按照“奇偶奇偶...”“偶偶偶偶...”交叉排列 res = [[0 for _ in range(n)] for _ in range(n)] odd = 1 even = 2 # 从列考虑只要符合条件即可 for ind in range(n * n): column = (ind % n) + 1 row = (ind // n) + 1 # 第一列全为奇数 if column == 1: res[ind // n][ind % n] = odd odd += 2 # 偶数列为“奇偶奇偶...” elif column % 2 == 0: # 奇数行为奇 if row % 2 != 0: res[ind // n][ind % n] = odd odd += 2 # 偶数行为偶 elif row % 2 == 0: res[ind // n][ind % n] = even even += 2 # 奇数列为“偶偶偶偶” elif column % 2 != 0: res[ind // n][ind % n] = even even += 2 count = 0 for ind in range(n * n): if res[ind // n][ind % n] > n * n: count += 1 else: continue if count > 0: print(-1) else: print(res) # get_matrix(3)
06:42
以上就是关于问题小红想让你构造一个行列的矩阵,矩阵中的元素为1到,每个数只出现1次。小红希望每个的子矩阵中元素之和均为奇数,你能帮帮她吗?的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训