12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #!/usr/bin/ruby
- # Smallest integer whose factorial's decimal expansion starts with the first n digits of Pi.
- # https://oeis.org/A328955
- # Known terms:
- # 9, 62, 62, 10044, 50583, 1490717, 5573998, 65630447, 688395641, 5777940569, 77773146302, 1154318938997, 1544607046599
- define τ = Num.tau
- define e = Num.e
- define S = τ.sqrt.ln
- define T = τ.root(-2*e)
- func inverse_factorial_W(n) {
- var l = (n - S)
- l / lambert_w(l / e) - 1/2
- }
- func f(n) {
- var t = (n*log(10) + Num.pi)
- (n + 10).bsearch_le { |k|
- lngamma(k+1) <=> t
- }
- }
- func list() {
- var n = 0
- var min = Inf
- #for (var k = 1; k <= 1e6; ++k) {
- for k in (1..1e6) {
- var t = inverse_factorial_W(log(Num.pi) + log(10)*k)
- var u = abs(t-round(t))
- if (u < min) {
- min = u
- say [k, f(k), min]
- }
- }
- }
- list();
- #~ say f(35835) #=> 17254
- #~ say f(65612) #=> 17254
- #~ say f(215977) #=> 50583
- #~ say f(361229) #=> 80759
- #~ say f(606107) #=> 129560
- #~ say f(18156119873678) #=> 1544607046599
- # 3.1415379577347882738422690467326012034732246681462146178704777124... × 10^215977
- # 3.1416026537017914713059250694747809117798457191096278165784809615... × 10^361229
- # 3.1416004264160752960646703239185746757645713102358236165630546745... × 10^606107
- # 3.14159265358994983986225317956466410382721019457604785880109... × 10^18156119873678
- __END__
- [1, 5, 0.170754964162595106192298366446444386187233223018]
- [4, 8, 0.119282088619728337069203182464248972832872336214]
- [5, 9, 0.0660890277578190984981939385813986170490358621273]
- [6, 10, 0.0630814493687193013326830188988446695721598681906]
- [14, 17, 0.0442277472832262276235074979061839952357641312835]
- [29, 28, 0.0085051071500119547159455753853245768473040300154]
- [64, 50, 0.00805287984270237997827138030856530035151899998]
- [85, 62, 0.000576891375070655613865104543764424321804876135922]
- [1441, 612, 0.000340180561834879812264244917905836193882318073888]
- [6146, 2124, 0.0000744365680182018593409222990316358284558204108093]
- [6346, 2184, 0.0000585394753736925251787103120793998823716034723696]
- [31464, 8945, 0.0000554612592858082825601533548416811887612197770932]
- [35479, 9955, 0.0000464069349792776659391879773465441511824005031089]
- [35835, 10044, 0.0000144851921972712430203689860099805751717643886668]
- [215977, 50583, 0.00000153135254520948990175081082981918126383700418356]
- [361229, 80759, 0.000000327373133488305475554506903594881833756188486131]
- [606107, 129560, 0.000000237494686233729132768723104874503918154868482228]
|