Arka fon
Bir fraktal dizi , her tamsayıdaki ilk oluşumunu kaldırabileceğiniz ve önceki ile aynı diziyle sonuçlayabileceğiniz bir tamsayı dizisidir.
Çok basit bir sıraya Kimberling'in açıklamaları denir . Pozitif doğal sayılarla başlarsınız:
1, 2, 3, 4, 5, 6, 7, 8, 9, ...
Sonra bazı boşluklarda fırfırlar:
1, _, 2, _, 3, _, 4, _, 5, _, 6, _, 7, _, 8, _, 9, ...
Ve sonra boşlukları tekrar tekrar dizinin kendisiyle doldurursunuz (boşluklar dahil):
1, 1, 2, _, 3, 2, 4, _, 5, 3, 6, _, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, _, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, _, 9, ...
1, 1, 2, 1, 3, 2, 4, 1, 5, 3, 6, 2, 7, 4, 8, 1, 9, ...
Bu bizim fraktal dizimiz! Şimdi kısmi toplamları alalım:
1, 2, 4, 5, 8, 10, 14, 15, 20, 23, 29, 31, 38, 42, 50, 51, 60, ...
Peki ya bu süreci tekrarlarsak? Yeni diziyi "fraktalize edin" (yani yukarıdaki adımlardan elde edilen kısmi toplamlar):
1, _, 2, _, 4, _, 5, _, 8, _, 10, _, 14, _, 15, _, 20, _, 23, ...
1, 1, 2, _, 4, 2, 5, _, 8, 4, 10, _, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, _, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, _, 20, 8, 23, ...
1, 1, 2, 1, 4, 2, 5, 1, 8, 4, 10, 2, 14, 5, 15, 1, 20, 8, 23, ...
Ve kısmi toplamları tekrar alın:
1, 2, 4, 5, 9, 11, 16, 17, 25, 29, 39, 41, 55, 60, 75, 76, 96, ...
Durulayın, tekrarlayın. Bu sürecin birleştiği ortaya çıkıyor. Bu işlemi her tekrarladığınızda, dizinin daha büyük bir öneki sabit kalır. Sonsuz miktarda yinelemeden sonra, OEIS A085765 ile sonuçlanırsınız .
İlginç gerçek: Bu işlem, orijinal dizi ile başladığımız sürece doğal sayılardan başlamasak bile aynı diziye yakınsar 1
. Orijinal sekans başka bir sekansla başlarsa x
, x*A085765
bunun yerine elde ederiz .
Meydan okuma
Pozitif bir tamsayı verildiğinde , yakınsak dizinin th elemanını N
çıktılar N
.
STDIN (veya en yakın alternatif), komut satırı bağımsız değişkeni veya işlev bağımsız değişkeni ile girdi alarak ve sonucu STDOUT (veya en yakın alternatif), işlev dönüş değeri veya işlev (çıkış) parametresi aracılığıyla çıktı alarak bir program veya işlev yazabilirsiniz.
Dizinin N
0- veya 1 tabanlı olup olmadığını seçebilirsiniz .
Test Durumları
Dizi şununla başlar:
1, 2, 4, 5, 9, 11, 16, 17, 26, 30, 41, 43, 59, 64, 81, 82, 108, 117, 147, 151, 192, 203, 246, 248, 307, 323, 387, 392, 473, 490, 572, 573, 681, 707, 824, 833, 980, 1010, 1161, 1165, 1357, 1398, 1601, 1612, 1858, 1901, 2149, 2151, 2458, 2517
Bu yüzden girdi 5
çıktı ile sonuçlanmalıdır 9
.
İşte (STDIN'deN
verilen N
) ilk sayıları üreten saf bir CJam referans uygulaması . Kodunuzun N
tüm öneki değil, yalnızca th öğesini döndürmesi gerektiğini unutmayın .
N
th terimini veriyoruz , değil mi?