Masalah
Mari kita tentukan Cantor umum yang ditetapkan dengan secara iteratif menghapus beberapa segmen panjang rasional dari tengah semua interval yang belum dihapus, mulai dari interval kontinu tunggal.
Mengingat panjang relatif segmen yang akan dihapus atau tidak, dan jumlah iterasi yang harus dilakukan, masalahnya adalah menulis program atau fungsi yang menampilkan panjang relatif segmen yang telah atau belum dihapus setelah n
iterasi.
Contoh: Secara permanen menghapus urutan ke-4 dan ke-6
Memasukkan:
n
- jumlah iterasi, diindeks mulai dari 0 atau 1
l
- daftar panjang segmen sebagai bilangan bulat positif dengan gcd(l)=1
dan panjang ganjil, mewakili panjang relatif dari bagian-bagian yang tetap seperti itu atau dihapus, mulai dari segmen yang tidak bisa dihapus. Karena panjang daftar aneh, segmen pertama dan terakhir tidak pernah dihapus. Misalnya untuk set Cantor reguler ini akan menjadi [1,1,1] untuk sepertiga yang tetap, sepertiga yang akan dihapus dan sepertiga yang tidak.
Keluaran:
Daftar bilangan bulat o
, gcd(o)=1
, dari panjang segmen relatif dalam n
iterasi th ketika segmen yang tidak dihapus dalam iterasi sebelumnya digantikan oleh salinan diperkecil dari daftar l
. Iterasi pertama adalah adil [1]
. Anda dapat menggunakan metode output yang tidak ambigu , bahkan unary.
Contohnya
n=0, l=[3,1,1,1,2] → [1]
n=1, l=[3,1,1,1,2] → [3, 1, 1, 1, 2]
n=2, l=[3,1,1,1,2] → [9,3,3,3,6,8,3,1,1,1,2,8,6,2,2,2,4]
n=3, l=[5,2,3] → [125,50,75,100,75,30,45,200,75,30,45,60,45,18,27]
n=3, l=[1,1,1] → [1,1,1,3,1,1,1,9,1,1,1,3,1,1,1]
Anda dapat menganggap input tersebut valid. Ini adalah kode-golf , sehingga program terpendek yang diukur dalam byte menang.
[0, 1, 2, 4, 6, 7]
bukan[3, 1, 1, 1, 2]
?