Dalam tantangan ini, Anda akan diminta untuk mengimplementasikan fungsi apa pun (atau program lengkap) yang memenuhi dua properti. Properti itu adalah:
Fungsi Anda harus berupa fungsi injektif (reversibel) dari polinomial dengan koefisien bilangan bulat non-negatif ke bilangan bulat non-negatif. Ini berarti tidak ada dua input yang tidak sama dapat memetakan ke output yang sama.
Fungsi Anda harus mempertahankan jumlah total "pada bit" dari input ke outputnya. Ini berarti jika Anda menghitung 1 bit dari setiap koefisien polinomial, jumlah mereka harus sama dengan jumlah 1 bit dalam representasi biner dari output. Misalnya
9
adalah1001
dalam biner sehingga memiliki 21
bit.
IO
Polinomial integer non-negatif sama dengan daftar tak terbatas dari integer non-negatif sehingga setelah titik tertentu semua bilangan bulat adalah nol. Dengan demikian, polinomial dapat direpresentasikan baik oleh daftar yang tidak terbatas (walaupun ini mungkin tidak diinginkan) atau oleh daftar terbatas dengan nol implisit setelah akhir daftar.
Perbedaan utama antara polinomial dan daftar terbatas adalah menambahkan nol di akhir daftar akan mengubah daftar:
Sambil menambahkan nol ke ujung polinomial tidak mengubah nilainya:
Jadi, jika fungsi Anda mengambil daftar terbatas yang merepresentasikan polinomial sebagai input, menambahkan nol tidak boleh mengubah hasilnya.
Saat merepresentasikan polinomial sebagai daftar, Anda dapat merepresentasikannya dengan entri pertama atau terakhir yang mewakili istilah konstan. Misalnya, Anda dapat memiliki salah satu dari kemungkinan berikut ini:
Dalam kasus pertama, menambahkan nol ke akhir daftar tidak boleh mengubah hasilnya; dalam kasus kedua, menambahkan nol di bagian depan daftar tidak boleh mengubah hasilnya.
Tentu saja jika bahasa Anda mendukung polinomial, Anda dapat mengambilnya sebagai masukan.
Output harus berupa output integer non-negatif melalui metode standar apa pun.
Ini adalah kode-golf sehingga jawaban akan dicetak dalam byte, dengan lebih sedikit byte yang lebih baik.
[]
atau[0]
input yang valid?