パスカルの三角形

この三角形の作り方は単純なルールに基づいています。最上段に 1 を配置します。それより下の段は両端には 1 を、それ以外の位置には右上の数と左上の数の和を配置します。例えば、5段目の左から2番目には、左上の 1 と右上の 3 の合計である 4 が入ります。。このようにして数を並べると、上から n 段目、左から k 番目の数は二項係数に等しくなります。

BigIntでのソースコードは次のようになります。MAXが段数になるので1000段くらいにして楽しんでください。

 

//

//  ViewController.swift

//  PascalTriangle

//

 

import UIKit

import BigInt

 

class ViewController: UIViewController {    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        let MAX = 10

        var pas: [[BigInt]] = []

        for i in 0..<MAX {

            print("\(i)", terminator: " ")

            pas.append(Array(repeating: 0, count: i + 1)) // その行に必要な長さだけ確保

            pas[i][0] = 1//両端は1

            if i >= 2 {

                for j in 1..<i {

                    pas[i][j] = pas[i - 1][j - 1] + pas[i - 1][j]

                }

            }

            pas[i][i] = 1//両端は1

            print("i = \(i): \(pas[i])")

        }

        // 最下段(MAX)のみ表示

        for j in 0..<MAX {

            print("\(pas[MAX-1][j])")

        }

    }

}