def cond1(A: np.ndarray, alpha: np.array) -> List[np.array]: """ 生成满足条件的 betas :param A: 矩阵 n*n :param alpha: 行向量 1*n :return: 是否可以返回一个符合条件的beta,若存在则返回所有beta的list """ assert A.shape[0] == A.shape[1] assert A.shape[0] == alpha.shape[0] n = A.shape[0] zero = np.zeros((1, n), dtype=bool)[0] one = np.ones((1, n), dtype=bool)[0] if alpha.__eq__(zero).all(): return allSubLists(one) else: id_rows = list() for idx, value in enumerate(alpha): if value: id_rows.append(idx) tmp = np.ones((1, n), dtype=bool)[0] for i in id_rows: tmp = tmp.__and__(A[i]) return allSubLists(tmp)