递归打印一些特别的矩阵,

递归打印一些特别的矩阵,

直接上代码了,这个题目的意思是,输入的n为0的时候就打印1, 输入的N为1的时候打印的是一个2-2的矩阵,这个矩阵的右下角是0, 其他位置是1,然后之后就是右下角的那一分块矩阵是全0,其他的三块是上一个的结果,所以可以利用numpy里面的这个tile函数.


import numpy as np

def main(n):
    if n==0:
        return np.array([1])
    elif n==1:
        return np.array([[1,1], [1,0]])

    ret = np.tile(main(n-1), (2,2))
    # 还要把最右边的那一块变成0
    w = ret.shape[0]
    ret[w//2:,w//2:] = 0
    #print(ret)
    return ret


if __name__ == '__main__':
    for i in range(5):
        print(main(i))

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦