Aşağıdaki sayı sırasını göz önünde bulundurun:
Birim aralığındaki tüm ikili fraksiyonları numaralandırır .
(Bu mücadeleyi kolaylaştırmak için ilk eleman isteğe bağlıdır: Bunu atlayabilir ve dizinin 1/2 ile başladığını düşünebilirsiniz.)
Görev
Bir program (tam program veya bir fonksiyon) yazın ki ...
Bu davranışlardan birini seçin:
- Giriş n, dizinin nth elemanı (0 indeksli veya 1 indeksli);
- Giriş n, dizinin ilk n elemanlarını;
- Hiçbir şey girmeyin, birer birer alabileceğiniz sonsuz sayı sırasını verin;
Kural
- Programınız en azından ilk 1000 öğeyi desteklemelidir;
- İstediğiniz gibi ondalık sayıları veya kesirleri (yerleşik, tam sayı çifti, dizeleri) çıkarmayı seçebilirsiniz;
- İkili basamaklı giriş / çıkış bu soruya izin verilmez;
- Bu kod golf , en kısa kod kazanır;
- Standart boşluklar izin verilmedi.
testcases
input output
1 1/2 0.5
2 1/4 0.25
3 3/4 0.75
4 1/8 0.125
10 5/16 0.3125
100 73/128 0.5703125
511 511/512 0.998046875
512 1/1024 0.0009765625
Bu örnekler, öncü 0'ın dahil olduğu 0 indeksli diziye dayanmaktadır. Çözümünüzü sığdırmak için girişi ayarlamanız gerekir.
Daha fazla oku
- OEIS A006257
- Josephus sorunu: . (Eski adıyla M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- : , veya .
- 1, 2, 4, 4, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 32, 32, 32, ...
A006257 (n) / A062383 (n) = (0, 0.1, 0.01, 0.11, 0.001, ...) birim aralıktaki bütün ikili fraksiyonları numaralandırır [0, 1). - Fredrik Johansson, 14 Ağustos 2006
"1/2" "1/4" "1/8"...
take
daha sonra n öğelerini ekleyebildiğiniz sürece iyidir .
int
ler veya double
bir dil / uygulanmasında double
IEEE binary64 biçimi kullanır ? Umarım demek istemiyorsanız, bir tamsayı girişi almak istiyorsak ASCII dizesini ayrıştırmak zorunda kaldık mı? Normal tamsayı türleri, C gibi dillerde ikilidir. Yoksa giriş / çıkışın bir tamsayı dizisi veya bir dize olamayacağını mı demek istiyorsunuz?