Bu FiveThirtyEight bilmecesinden uyarlandı .
Arka fon
Aşağıdaki sonsuz diziyi inceleyin:
3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ...
Diyelim ki dizi 1 dizinli. i
Sırayla inci sayısı ne kadar belirler 3
önce vardır s i
th 2
ve önceki aşağıdaki 2
s. Bu nedenle, sekans bir ile başladığından 3
, sekans başlamalı 3 3 3 2
ve 3
sekansın başında üç s olduğu için, sekansın 3 3 3 2
kendini üç kez tekrarlaması gerekir. Bundan sonra 3 3 2
, dizideki dördüncü sayı olduğu için ulaşırsınız 2
.
FiveThirtyEight bilmecesi üçlülerin ikiye oranını (burada şımartmayacağım) sınırlandırmasını ister, ancak indeks sonrasında kümülatif oranın ne olduğunu da sorabilirsiniz i
. Örneğin en oranı i=4
IS 3/1 = 3
ve en i=15
öyle 11/4 = 2.75
.
Genel olalım
Sayılar dikkate alındığında n
ve k
biz ile başlayan benzer bir diziyi yapabilirsiniz n
orijinal dizi endeksinde numarası açıklanan ve tıpkı i
birçok şeklini belirler n
ler önce buraya geldik i
th k
ve önceki tüm aşağıdaki k
s.
Örnekler:
n=2, k=5
diziyi verir 2 2 5 2 2 5 2 2 2 2 2 5 2 2 5 ...
n=3, k=0
verir 3 3 3 0 3 3 3 0 3 3 3 0 0 3 3 3 0 ...
n=1, k=3
verir 1 3 1 1 1 3 1 3 1 3 1 3 1 1 1 3 1 ...
Meydan okuma
Bir işlev / program yazın ve onunla aşağıdakileri yapın. Girdi olarak al:
- pozitif bir tam sayı
n
- negatif olmayan bir tam sayı
k ≠ n
- pozitif bir tam sayı
i > n
İlk iki giriş n
ve k
yukarıda tarif edildiği gibi bir dizi tespit i
eden bir indekstir. Örneklerde 1-indeksleme kullanıyorum ancak 0- veya 1-indeksleme kullanma özgürlüğüne sahipsiniz. 0 dizinli ise, kısıtlama i
açıktır i ≥ n
.
Üç sayı çıktısıyla , dizindeki sayıya kadar ve bu sayı da dahil olmak üzere dizideki s / n
s oranı . Çıkış biçimi ya da en azından 5 hassas basamağı ya da bu gibi bir oran olarak kesin bir değere sahip bir ondalık değer olabilir veya .k
i
3524/837
3524:837
Ondalık biçimde son rakam istediğiniz gibi yuvarlanabilir. Sondaki sıfırlara ve boşluklara izin verilir.
Dize biçimlerinden herhangi birinde, iki sayının eşleşmesi için normalleştirilmesi gerekir. Örneğin, oran 22/4 ise 11/2
ve 11:2
kabul edilebilir ancak kabul edilemez 22/4
ise.
Örnekler
n k i output
2 4 15 2.75 or 11/4
6 0 666 5.1101 or 557:109
50 89 64 63 or 63:1
3 2 1000 2.7453 or 733/267
9 12 345 9.4545 or 104/11
Bu, dil başına kod golfüdür, bu nedenle her dilde en kısa kod kazanır.
/
ya da :
sadece zorluğa gereksiz bir komplikasyon eklerim.