學習軌道
/
Raku
Raku
/
練習
/
巴斯卡三角形
巴斯卡三角形

巴斯卡三角形

簡單

簡介

天氣這麼好,你一點也不想在教室裡待上一個小時。你有些不情願地走進教室,發現黑板上畫著一個形狀奇特、卻令人莫名感到滿足的三角形。在等數學老師來的時候,你不禁注意到這個三角形有幾個規律:最外側的值全都是 1,每一列都比前一列多一個值,而且整個三角形左右對稱。真奇怪!

坐下沒多久,老師就走進教室,解釋說這個三角形就是著名的巴斯卡三角形。

接下來的一小時裡,老師揭開了一些藏在這個三角形裡的奇妙事物:

  • 可以用它來計算從 N 個值中選出 K 個元素有多少種方式。
  • 它包含了費氏數列。
  • 如果把奇數和偶數塗上不同的顏色,就會得到一個美麗的圖案,叫做謝爾賓斯基三角形。

老師懇切地請你和同學們去查查其他用途,並向你保證還有更多更多喔!就在這時,下課鐘聲響了。你這才發現,過去這一個小時,你完全沉浸在認識巴斯卡三角形的世界裡。你迅速從包包裡拿出筆電,走到外面,準備同時享受陽光_和_巴斯卡三角形的奧妙。

說明

你的任務是輸出巴斯卡三角形的前 N 列。

巴斯卡三角形 是一個由正整數構成的三角形陣列。

在巴斯卡三角形中,每一列的數值個數等於它的列號(列號從 1 開始)。 因此,第 1 列有 1 個數值,第 2 列有 2 個數值,依此類推。

第 1 列(最頂端的那一列)只有 1 個數值:1。 之後每一列的數值,是把上一列中,目前位置正右方與正左方的數字相加而得。

如果上一列在目前位置的左方或右方沒有數值(這只會發生在最左邊和最右邊的位置),就把該位置的數值視為零(等於在相加時「忽略」它)。

範例

來看看巴斯卡三角形的前 5 列吧:

    1
   1 1
  1 2 1
 1 3 3 1
1 4 6 4 1

最頂端的那一列只有 1 個數值,就是 1。

最左邊和最右邊的數值,各自只有一個相鄰位置要考慮,分別是它右方和左方的位置。 由於最頂端的數值是 1,由此可知,所有最左邊和最右邊的數值也都是 1。

其他數值都有兩個位置要考慮。 舉例來說,第 5 列(1 4 6 4 1)中間的數值是 6,因為上一列中它左方和右方的數值分別是 3 和 3:

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Raku Exercism

準備好開始 巴斯卡三角形 了嗎?

註冊 Exercism,透過 94 個練習 和真人引導來學習並精通 Raku,全部免費。