函子蛋糕 2022-12-31 23:53 采纳率: 80.6%
浏览 29

这个用矩阵的话怎么写?

题目:四项工作分别为宣传、收集、撰写、录制。甲乙丙丁4人各做一项。已知:乙不宣传也不撰写。甲不宣传也不录制。丁不撰写也不录制。丙不录制也不宣传。如果甲不撰写那么丁不宣传。问谁负责收集工作。
分析:手动列个表出来得很快,会发现甲乙丙都不宣传,因此丁必然宣传,因此“如果甲不撰写那么丁不宣传”的意思就是甲撰写。最终得出丙负责收集。

程序思路:
生成4*4矩阵,如果负责该工作记为1,不负责记为0,未知暂记为2。
如果某行或列出现了3个0,那么剩下那个必然为1。
直到收集那一列出现1个1时停止程序的计算。

问:python程序怎么写?

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2023-01-01 00:13
    关注

    代码如下,望采纳

    def get_worker(matrix):
        while True:
            for i in range(4):
                if matrix[i].count(2) == 1:
                    for j in range(4):
                        if matrix[i][j] == 2:
                            matrix[i][j] = 1
                        else:
                            matrix[i][j] = 0
            for j in range(4):
                if [matrix[i][j] for i in range(4)].count(2) == 1:
                    for i in range(4):
                        if matrix[i][j] == 2:
                            matrix[i][j] = 1
                        else:
                            matrix[i][j] = 0
            if matrix[1][2] == 1:
                return "乙"
            elif matrix[2][1] == 1:
                return "甲"
            elif matrix[3][1] == 1:
                return "丁"
            elif matrix[0][3] == 1:
                return "丙"
            
    matrix = [[2, 0, 0, 0], [0, 2, 1, 0], [0, 0, 2, 1], [1, 0, 0, 2]]
    print(get_worker(matrix))
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月31日

悬赏问题

  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥15 ChatGPT网络被篡改怎么办?
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。
  • ¥20 在easyX库下编写C语言扑克游戏跑的快,能实现简单的人机对战
  • ¥15 svpwm波形异常求解答
  • ¥15 STM32——硬件IIC从机通信代码实现
  • ¥15 微生物组数据分析--微生物代谢物