zoukankan      html  css  js  c++  java
  • 回形矩阵--python

    def bsm(n):
        a = [[0]*n for x in range(n)]
        p = 0
        q = n-1
        t = 1
        while p < q:
            for i in range(p,q):
                a[p][i] = t
                t += 1
    
            for i in range(p,q):
                a[i][q] = t
                t += 1
    
            for i in range(q,p,-1):
                a[q][i] = t
                t += 1
    
            for i in range(q,p,-1):
                a[i][p] = t
                t += 1
            p += 1
            q -= 1
        if q == p:
            a[p][p] = t
        return a

    这个是一个函数,返回一个回形数组

    具体的思路是,用p记录左上角的坐标,用q记录右下角的坐标,一圈一圈的向矩阵的里面赋值,最终得到一个回形矩阵,最后的一个判断  if p==q  是因为奇数和偶数不不一样引起的差异,如果是奇数经历了while循环后,最后中间还有一个值是空的,如果是偶数的话,不存在p == q的情况,因为每次循环p都加1,q都减一,岔开了。 

  • 相关阅读:
    [luogu]P1852跳跳棋
    StdDraw绘图
    Java-Timer-Stop
    人之初
    单例模式--延时初始化
    ubuntu忘记密码
    QT5 TK1 串口通信
    金秋十月
    级联分类器训练-----OpenCV
    Hu矩SVM训练及检测-----OpenCV
  • 原文地址:https://www.cnblogs.com/luojianyi/p/9504638.html
Copyright © 2011-2022 走看看