国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python實現(xiàn)楊輝三角(2種實現(xiàn)方案)

這篇具有很好參考價值的文章主要介紹了Python實現(xiàn)楊輝三角(2種實現(xiàn)方案)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

楊輝三角形,又稱賈憲三角形、帕斯卡三角形,是二項式系數(shù)在三角形中的一種幾何排列。

下圖顯示了楊輝三角的前 7 行:

Python實現(xiàn)楊輝三角(2種實現(xiàn)方案)

遞歸打印楊輝三角

楊輝三角形中的數(shù),正是(x+y)的 N 次方冪展開式各項的系數(shù),下面以遞歸的方法來打印楊輝三角形。

從楊輝三角形的特點出發(fā),可以總結出:

  • 第 x 行有 x 個值(設起始行為第1行)。
  • 對于第 x 行的第 y(y>=3)個值,有:當 y=1 或 y=x 時,其值為 1;當 y!=1 且 y!=x 時,其值為第 x-1 行的第 y-1 個值與第 x-1 行的第 y 個值之和。


將這些特點提煉成數(shù)學公式,則位于楊輝三角第 x 行第 y 列的值為:
?

Python實現(xiàn)楊輝三角(2種實現(xiàn)方案)


根據(jù)上面的分析,完整的程序如下:

def triangles(x, y):
    if y == 1 or y == x: # y=1或y=x時,函數(shù)返回值為1
        return 1
    else:
        z = triangles(x-1, y-1) + triangles(x-1, y) # y為其他值時的遞推公式
        return z
if __name__ == "__main__":
    n = int(input("請輸入楊輝三角的行數(shù):"))
    for i in range(1, n+1): # 輸出n行
        for j in range(0, n-i+1):
            print("   ", end=" ")
        for j in range(1, i+1):
            # 調(diào)用遞歸函數(shù),輸出第i行的第j個值
            print("%6d  " %(triangles(i, j)), end=" ")
        print()

運行結果為:

請輸入楊輝三角的行數(shù):7
                                 1  
                             1        1  
                         1        2        1  
                     1        3        3        1  
                 1        4        6        4        1  
             1        5       10       10        5        1  
         1        6       15       20       15        6        1

二維數(shù)組打印楊輝三角形

由于位于楊輝三角形兩個腰上的數(shù)都為 1,其他位置上的數(shù)等于它肩上兩個數(shù)之和,基于楊輝三角形的這個特點,就可以使用二維數(shù)組打印出楊輝三角形。

先定義二維數(shù)組 a[N][N],N 為常量,大于要打印的行數(shù) n。再將每行的第一個數(shù)和最后一個數(shù)賦值為 1,即 a[i][1]=a[i][i]=1。除了每行的第一個數(shù)和最后一個數(shù)以外,每行上的其他數(shù)都為其肩上的兩數(shù)之和,即 a[i][j]=a[i-1][j-1]+a[i-1][j]。

1) 計算楊輝三角形中的數(shù)值并存入二維數(shù)組

定義 row 和 column 兩個變量分別代表楊輝三角形的行和列,變量 n 表示要打印的行數(shù)。

# 計算楊輝三角中的數(shù)值并存入二維數(shù)組a中
for row in range(1, n+1):
    # 令每行兩邊的數(shù)為1,循環(huán)從1開始,每行第一個數(shù)存放在a[row][1]中
    a[row][1] = a[row][row] = 1
for row in range(3, n+1):
    for column in range(2, (row-1)+1):
        # 計算其他位置的值并存入二維數(shù)組
        a[row][column] = a[row-1][column-1] + a[row-1][column]

2) 打印空格

在每行輸出之前,先打印空格占位,可使輸出更美觀。

第 1 行打印 3(n-1) 個空格,第 2 行打印 3(n-2) 個空格.....第 k 行打印 3(n-k)個空格。

for row in range(1, n+1):
    for k in range(1, (n-row)+1):
        print("   ", end="")

3) 打印楊輝三角形中的數(shù)

輸出楊輝三角形每一行之前都先打印空格,之后再使用下面的代碼輸出每行中的數(shù)值。

# 打印楊輝三角形
for row in range(1, n+1):
    for k in range(1, (n-row)+1):
        print("   ", end="") # 在每行輸出數(shù)之前先打印空格占位,使輸出更美觀
    # column<=row表示不輸出數(shù)組中其他的數(shù),只輸出所需的數(shù)
    for column in range(1, row+1):
        print("%6d" %(a[row][column]), end=" ")
    print() # 當一行輸出完以后換行繼續(xù)下一行的輸出

現(xiàn)在我們就需要把剛才的程序進行組合,構成完整的程序:

if __name__ == "__main__":
    n = 0
    a = [([0] * 14) for i in range(14)] # 定義一個行為14、列為14的二維數(shù)組
    while n <= 0 or n >= 13: # 控制打印的行數(shù),行數(shù)過大會造成顯示不規(guī)范
        n = int(input("請輸入楊輝三角的行數(shù):"))
    print("打印 %d 行楊輝三角如下:" %n)
    # 計算楊輝三角中的數(shù)值并存入二維數(shù)組a中
    for row in range(1, n+1):
        # 令每行兩邊的數(shù)為1,循環(huán)從1開始,每行第一個數(shù)存放在a[row][1]中
        a[row][1] = a[row][row] = 1
    for row in range(3, n+1):
        for column in range(2, (row-1)+1):
            # 計算其他位置的值并存入二維數(shù)組
            a[row][column] = a[row-1][column-1] + a[row-1][column]
    # 打印楊輝三角形
    for row in range(1, n+1):
        for k in range(1, (n-row)+1):
            print("   ", end="") # 在每行輸出數(shù)之前先打印空格占位,使輸出更美觀
        # column<=row表示不輸出數(shù)組中其他的數(shù),只輸出所需的數(shù)
        for column in range(1, row+1):
            print("%6d" %(a[row][column]), end=" ")
        print() # 當一行輸出完以后換行繼續(xù)下一行的輸出

運行結果為:文章來源地址http://www.zghlxwxcb.cn/news/detail-417325.html

請輸入楊輝三角的行數(shù):7
打印 7 行楊輝三角如下:
                       1
                    1      1
                 1      2      1
              1      3      3      1
           1      4      6      4      1
        1      5     10     10      5      1
     1      6     15     20     15      6      1

到了這里,關于Python實現(xiàn)楊輝三角(2種實現(xiàn)方案)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用Python實現(xiàn)高效數(shù)據(jù)下采樣:詳解最大三角形三桶(LTTB)算法

    引言 在我們接觸大規(guī)模的數(shù)據(jù)集時,數(shù)據(jù)的數(shù)量往往會讓人望而卻步。數(shù)據(jù)分析、機器學習等領域的專業(yè)人員需要對這些數(shù)據(jù)進行處理,以便更好地理解數(shù)據(jù),以及利用數(shù)據(jù)進行預測。然而,處理大規(guī)模數(shù)據(jù)的計算成本往往非常高,這時候,就需要引入下采樣(Downsampling)的

    2024年02月14日
    瀏覽(29)
  • [C語言] [典例詳解] 打印楊輝三角(找規(guī)律簡單實現(xiàn))

    [C語言] [典例詳解] 打印楊輝三角(找規(guī)律簡單實現(xiàn))

    ????????用C語言打印楊輝三角。楊輝三角參考圖如下: ? ? ? ? 于是不清楚楊輝三角的同學們可以上網(wǎng)查查,可以立刻知道它的相關推理歸納和公式總結。它的簡介如下: ?所以我們可以使用二項式的方法來寫代碼。但我下面要講的是直接觀察已有數(shù)據(jù)來寫。 ??????

    2024年02月01日
    瀏覽(21)
  • [C語言][典例詳解]打印楊輝三角(找規(guī)律簡單實現(xiàn))

    [C語言][典例詳解]打印楊輝三角(找規(guī)律簡單實現(xiàn))

    目錄 楊輝三角的相關知識 楊輝三角圖: ? 楊輝三角的規(guī)律 在編程中實現(xiàn) 第一步?:我們先實現(xiàn)數(shù)字的打印,后面再加上空格構成三角形形狀; ?編輯 1.首先我們可以直觀的看出三角形的兩個斜邊都是1;所以我們先打印斜邊的1(代碼實現(xiàn)+分析+運行效果:) 2.打印中間的數(shù)

    2024年02月08日
    瀏覽(18)
  • css實現(xiàn)圓角三角形,圓角三角形的實現(xiàn)

    css實現(xiàn)圓角三角形,圓角三角形的實現(xiàn)

    今天給大家?guī)硪粋€如何實現(xiàn)圓角三角形的方案,這個方案雖然可以實現(xiàn),但是也是借助拼湊等方式來實現(xiàn)的,假如想一個div來實現(xiàn)圓角三角形,還是比較困難的。之前文章講了如何實現(xiàn)對話框,里面介紹了三角形的實現(xiàn)方式。今天講講如何實現(xiàn)圓角三角形。 想要生成一個帶

    2024年02月09日
    瀏覽(25)
  • python代碼實現(xiàn)判斷三角形類型,使用pytest進行代碼測試,生成allure測試報告

    python代碼實現(xiàn)判斷三角形類型,使用pytest進行代碼測試,生成allure測試報告

    一、python代碼判斷三角形類型 寫代碼之前首先我們要知道滿足三角形的條件: 前提條件:三角形邊長都為大于0的數(shù)字 構成三角形:兩邊之和大于第三邊 即 a+b c? and a+cb and? b+ca? ?(此三個條件需要同時滿足) 滿足構成三角形之后,要考慮構成三角形的類型: 三角形分為:

    2024年02月05日
    瀏覽(26)
  • 用python寫九九乘法表(左上三角、左下三角、右上三角、右下三角、正三角形、倒三角形格式)

    用python寫九九乘法表(左上三角、左下三角、右上三角、右下三角、正三角形、倒三角形格式)

    1.左上三角格式: ? 2.左下三角格式: ? 3.右上三角格式: ? ? 4.右下角格式: ? ? 5.倒三角格式: ? ? ?

    2024年02月11日
    瀏覽(27)
  • python求三角形面積

    python求三角形面積

    ?運用Python求三角形面積,代碼如下 在運行后,可得 ? 輸入三邊長后通過三角形面積公式,可求得三角形的面積,其中需要得知三角形如何運用周長求面積,周長公式為s = (a + b + c) / 2,后用面積公式area = (s*(s-a)*(s-b)*(s-c)) ** 0.5最后輸出求得三角形的面積公式。 ?

    2024年02月11日
    瀏覽(25)
  • css實現(xiàn)三角形

    css實現(xiàn)三角形

    ? ?1. Border 2.?transform 3.??:before 和 :after 偽元素 4. clip-path

    2024年02月09日
    瀏覽(30)
  • 120. 三角形最小路徑和 Python

    給定一個三角形 triangle ,找出自頂向下的最小路徑和。 每一步只能移動到下一行中相鄰的結點上。 相鄰的結點 在這里指的是 下標 與 上一層結點下標 相同或者等于 上一層結點下標 + 1 的兩個結點。也就是說,如果正位于當前行的下標 i ,那么下一步可以移動到下一行的下

    2023年04月22日
    瀏覽(21)
  • 用 CSS 實現(xiàn)畫三角形

    用 CSS 實現(xiàn)畫三角形

    ?

    2024年02月14日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包