## Python 上的 reals 套件 (需要 3.10+ 以上才能裝)

It allows you to compute approximations to an arbitrary degree of precision, and, contrary to most other libraries, guarantees that all digits it displays are correct.

Constants: pi, e, phi
Functions related to powers: sqrt, exp, log
Operators: negation, addition, subtraction, multiplication, division, powers
Trigonometric functions: sin, sinh, csc, csch, cos, cosh, sec, sech, tan, tanh, cot, coth

>>> from reals import sqrt

>>> sqrt2 = sqrt(2)
>>> sqrt2
<reals._real.Real object at 0x10d182560 (approximate value: 1.41421)>
>>> sqrt2.evaluate(10)
'1.4142135624'
>>> '{:.10f}'.format(sqrt2)
'1.4142135624'
>>> sqrt2.to_decimal(10)
Decimal('1.4142135624')

## 用 GPT-3 解讀程式碼

Hacker News 上看到的方法，Simon Willison 試著把程式碼餵進 GPT-3，然後問 GPT-3 程式碼的意思，看起來答的還不錯：「Using GPT-3 to explain how code works」，對應的討論 (包括 Simon Willison 的回應) 則可以在「Using GPT-3 to explain how code works (simonwillison.net)」這邊看到。

## 從三角函數 cosine 的實做問題學一些週邊知識...

cosine 是很基本的函數，所以可以使用的地方很多。另外一方面，也因為他不是那麼直覺就可以實做出來，在現代的實做裡面其實藏了超多細節...

A common software technique to implement nearly quadruple precision using pairs of double-precision values is sometimes called double-double arithmetic.

Using pairs of IEEE double-precision values with 53-bit significands, double-double arithmetic provides operations on numbers with significands of at least[4] 2 × 53 = 106 bits (...), only slightly less precise than the 113-bit significand of IEEE binary128 quadruple precision.

## Python 裡使用超過 Double Precision 的運算

There is no error with the program; this discrepancy is caused by a loss of numerical accuracy in the eigenvalue calculation due to the limitation of hardware double precision (16-digit).

Note that this library is incredibly slow for large matrices, so is best avoided for most applications.

## 在電腦上計算二進制圓周率 π 的公式

Hacker News 的最新列表上面看到的演算法，用來計算圓周率 π 的公式：「Bellard's formula」。

$\pi = \frac1{2^6} \sum_{n=0}^\infty \frac{(-1)^n}{2^{10n}} \, ( -\frac{2^5}{4n+1} - \frac1{4n+3} + \frac{2^8}{10n+1} - \frac{2^6}{10n+3} - \frac{2^2}{10n+5} - \frac{2^2}{10n+7} + \frac1{10n+9} )$

## 第 48 個梅森質數確認

All tests smaller than the 48th Mersenne Prime, M(57885161), have been verified

## 各種反直覺的項目

1. It is possible to compute over encrypted data without access to the secret key: https://en.wikipedia.org/wiki/Homomorphic_encryption

2009 年的時候第一個 FHE (fully homomorphic encryption) 演算法被提出來後就被大量討論，這代表你可以把資料加密後丟上雲端，利用雲端的大量運算資源運算完後，再把資料拉回地端解密，得到運算後的結果。這算是 Lattice-based cryptography 的一個很重大的應用。

## 證明圓周率 π 是無理數

$\frac{d}{dx} sin(x) = cos(x)\newline\newline\frac{d}{dx} cos(x) = -sin(x)$

$\frac{d}{dx} f(x)g(x) = f'(x)g(x) + f(x)g'(x)$

## 四個機率問題

• 每一次有 $\frac{1}{N}$ 成功的機率，跑 $N$ 次後最少成功一次的機率。
• $N$ 個球隨機丟到 $N$ 個籃子後有空籃子的機率。
• $N$ 個數字在隨機排序後有數字不改變位置的機率。
• $N$ 種 coupon 平均隨機出現，要抽中一套 $N$ 種都有的 coupon 需要抽幾次的期望值。