Arka fon:
Pi ( π
) aşkın bir sayıdır ve bu nedenle sonlandırılmamış bir ondalık gösterime sahiptir. Benzer şekilde, temsil başka bir tamsayı tabanına yazılırsa sona ermez. Peki ya üs olarak yazarsak π
?
Ondalık basamaklar 10'un gücünü temsil eder, bu nedenle:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
Yani temelde π
, rakamlar şu güçleri temsil eder π
:
π = 10 = (1 * π^1) + (0 * π^0)
Bu yeni temelde, tamsayılar artık sonlandırıcı olmayan temsillere sahiptir. Yani ondalık sayı 10 şimdi şöyle olur:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
π
Temelde kullanılan basamakların 0,1,2,3 olduğunu unutmayın, çünkü bunlar daha küçük basamaklardır π
.
Meydan okuma:
Negatif olmayan bir tam sayı verildiğinde x
:
Tabandaki temsilini çıktılar (durmadan)
π
. Sayının sınırlı bir temsili varsa (0, 1, 2, 3), program sonsuz sıfır yazdırmak yerine durabilir.Rastgele büyük bir tamsayı alın
n
ve üssünün ilkn
hanelerinix
çıktılayınπ
.
Kurallar:
- Bir sayının birden fazla olası temsili olduğundan, en büyük (normalleştirilmiş) görünen sayıyı çıkarmanız gerekir . Gibi sadece
1.0 = 0.9999…
onlu, bu sorunun da bu baz bulunmaktadır. Temeldeπ
, biri hala1.0
, ancak0.3011…
örneğin olarak da yazılabilir . Benzer şekilde, on100.01022…
, ancak30.121…
veya olarak da yazılabilir23.202…
. - Bu kod golf, çok az bayt kazanır. Program veya işlev.
- Hiçbir yerleşik ins ( Benim baktığım size , Mathematica'yı )
Sonuçlar:
0 = 0
1 = 1
2 = 2
3 = 3
4 = 10.220122021121110301000010110010010230011111021101…
5 = 11.220122021121110301000010110010010230011111021101…
6 = 12.220122021121110301000010110010010230011111021101…
7 = 20.202112002100000030020121222100030110023011000212…
8 = 21.202112002100000030020121222100030110023011000212…
9 = 22.202112002100000030020121222100030110023011000212…
10 = 100.01022122221121122001111210201201022120211001112…
42 = 1101.0102020121020101001210220211111200202102010100…
1337 = 1102021.0222210102022212121030030010230102200221212…
9999 = 100120030.02001010222211020202010210021200221221010…
Pi tabanındaki ilk 10.000 rakam
Doğrulama:
Sen Mathematica kodu kullanarak istediğiniz herhangi bir çıktı doğrulayabilir burada . İlk parametre, x
üçüncü parametre n
. Zaman aşımına uğrarsa, bir küçük seçin n
ve çalıştırın. Ardından, programla yeni bir Mathematica çalışma sayfası açmak için "Kodda Aç" ı tıklayın. Orada zaman sınırı yok.
Elde edilen çıktıyı burada bir sayıya dönüştürün .
İlişkili:
n
olmasam da, Pi'nin en azından n
hassas basamaklara sahip olması gerektiğini tahmin ediyorum .