快轉到主要內容

連分數

·482 字·1 分鐘·
筆記 批兔

我今天一如往常很認真去教室上課。聽到:

我們可以很容易地把任何分數 p / q 寫成形如
1
a_0 + ─────────
1
a_1 + ──────
1
a_2 + ──


操作上就是輾轉相除法,複雜度 O(log N)。可以用 a 的前幾項來找到 p/q 附近的分數。
例如:
3.1416 = 3 + (1 / (10000 / 1416))
= 3 + (1 / (7 + 1 / (1416 / 88)))
= 3 + (1 / (7 + 1 / (16 + 1 / (88 / 8))))
= 3 + (1 / (7 + 1 / (16 + 1 / 11)))

3 = 3
3 + (1 / 7) = 22 / 7 = 約率
3 + (1 / (7 + 1 / 16)) = 355 / 113 = 密率

我當下覺得:「這麼簡單好用的東西,我居然大學快畢業了,還要別人教……」
有這招我很多東西都可以數值解再換回分數阿,只要有概念說精度是多少就好了。

為什麼我以前從來不知道這件事呢?明明就超簡單阿!大概是我直覺反射,
連分數 -> 拉馬努金 -> 我不懂 -> 放棄或是換一個方法
真是「人不學,不知道」果然還是要多看一點符合我程度的書XD


※ 發信站: 批踢踢兔(ptt2.cc), 來自: xxx.xxx.xxx.xxx (臺灣)
Re: 然後我隔天看自己的直播錄影才發現,我一週前教資芽的時候,竟然曾舉例說:
Re: 「假設你國小寫個分數計算機,之後你學到連分數,想擴充功能,就要讀自己的程式碼」
Re: 可見得我上課的時候根本不知道自己在講什麼