Pertimbangkan urutan nomor berikut:
Ini menghitung semua fraksi biner dalam interval satuan .
(Untuk membuat tantangan ini lebih mudah, elemen pertama adalah opsional: Anda dapat melewati dan mempertimbangkan urutan dimulai dengan 1/2.)
Tugas
Tulis program (selesaikan program atau fungsi) yang ...
Pilih salah satu dari perilaku ini:
- Input n, output elemen n dari urutan (0-diindeks atau 1-diindeks);
- Input n, output pertama n elemen urutan;
- Masukkan apa-apa, output urutan nomor tak terbatas yang dapat Anda ambil dari satu per satu;
Aturan
- Program Anda setidaknya harus mendukung 1000 item pertama;
- Anda dapat memilih untuk menghasilkan desimal, atau fraksi (bawaan, bilangan bulat integer, string) sesuka Anda;
- Input / Output sebagai digit biner tidak diperbolehkan dalam pertanyaan ini;
- Ini adalah kode-golf , kode terpendek menang;
- Celah standar tidak diijinkan.
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
Contoh-contoh ini didasarkan pada urutan 0-diindeks dengan 0 terkemuka disertakan. Anda perlu menyesuaikan input untuk menyesuaikan solusi Anda.
Baca lebih lajut
- OEIS A006257
- Masalah Josephus: . (Sebelumnya M2216)
- 0, 1, 1, 3, 1, 3, 5, 7, 1, 3, 5, 7, 9, 11, 13, 15, 1, 3, 5, ...
- OEIS A062383
- : untuk n > 0 , a n = 2 ⌊ l o g 2 n + 1 ⌋ atau a n = 2 a ⌊ n.
- 1, 2, 4, 4, 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, ...) menghitung semua fraksi biner dalam interval satuan [0, 1). - Fredrik Johansson, 14 Agustus 2006
"1/2" "1/4" "1/8"...
take
n elemen dari itu nanti.
int
s, atau double
dalam bahasa / implementasi di mana double
menggunakan format IEEE binary64 ? Saya harap Anda tidak bermaksud harus mengurai string ASCII jika kami ingin mengambil input integer? Tipe integer normal adalah biner dalam bahasa seperti C. Atau apakah maksud Anda input / output tidak boleh berupa array atau string integer atau nol ASCII?