Problem
- Kemunculan karakter ’1′ pada angka 10 adalah 1
- Kemunculan karakter ’1′ pada angka 51 adalah 1
- Kemunculan karakter ’1′ pada angka 11 adalah 2
- Kemunculan karakter ’1′ pada angka 121 adalah 2
- Kemunculan karakter ’1′ pada angka 1141 adalah 3
- dst…
Pertanyaannya :
- Diketahui
.
- Berapa banyak bilangan di dalam himpunan tersebut yang mengandung karakter ’1′?
- Berapa kali karakter ’1′ muncul di dalam himpunan
?
- Misalkan
adalah himpunan seluruh bilangan n-digit.
- Berapa banyak bilangan di dalam himpunan
yang mengandung karakter 1?
- Berapa kali karakter ’1′ muncul pada himpunan tersebut?
Sumber : Nanda Daiva Putra
Referensi : 10th Binomial Transform dan Number of “9ish numbers” with n digits

Pra-Pembahasan 1 (Leading Zero)
Normalnya, awalan 0 (leading zero) tidak diperbolehkan dalam menulis angka. Sebagai contoh :
- Penulisan 06 dianggap tidak valid, yang valid adalah 6
- Penulisan 029 dianggap tidak valid, yang valid adalah 29
Sehingga :
Banyaknya bilangan 1 digit yang dapat dibentuk adalah 9
Banyaknya bilangan 2 digit yang dapat dibentuk adalah 9 . 10 = 90
Banyaknya bilangan 3 digit yang dapat dibentuk adalah 9 . 10 . 10 = 900
dst..
Namun, seandainya leading zero diperbolehkan, yaitu setiap karakter pada himpunan
boleh dipakai, maka :
Banyaknya bilangan 1 digit yang dapat dibentuk adalah 10
Banyaknya bilangan 2 digit yang dapat dibentuk adalah 10 . 10 = 100
Banyaknya bilangan 3 digit yang dapat dibentuk adalah 10 . 10 . 10 = 1000
dst…
Dari sini kita dapat menyimpulkan bahwa :
- Banyaknya bilangan n-digit yang dapat dibentuk jika awalan 0 tidak diperbolehkan (non-leading zero) adalah

- Banyaknya bilangan n-digit yang dapat dibentuk jika awalan 0 (leading zero) diperbolehkan adalah

Pra-Pembahasan 2 (Kemunculan Karakter ’1′ pada Leading Zero)
Jika awalan 0 (non-leading zero) tidak diperbolehkan, maka :
Bilangan-bilangan 1 digit yang mengandung karakter ’1′ adalah 
Banyaknya bilangan 1 digit yang mengandung karakter ’1′ adalah 1 buah.
Total kemunculan karakter ’1′ pada bilangan 1 digit adalah 1 kali.
Bilangan-bilangan 2 digit yang mengandung karakter ’1′ adalah 
Banyaknya bilangan 2 digit yang mengandung karakter ’1′ adalah 18 buah.
Total kemunculan karakter ’1′ pada bilangan 2 digit adalah 19 kali.
Jika awalan 0 (leading zero) diperbolehkan, maka :
Bilangan-bilangan 1 digit yang mengandung karakter ’1′ adalah 
Banyaknya bilangan 1 digit yang mengandung karakter ’1′ adalah 1 buah.
Total kemunculan karakter ’1′ pada bilangan 1 digit adalah 1 kali.
Bilangan-bilangan 2 digit yang mengandung karakter ’1′ adalah 
Banyaknya bilangan 2 digit yang mengandung karakter ’1′ adalah 19 buah.
Total kemunculan karakter ’1′ pada bilangan 2 digit adalah 20 kali.
Mengapa terdapat perbedaan antara kasus leading zero dan kasus non-leading zero?
Jawabannya terletak pada leading zero itu sendiri.
Pada kasus non-leading zero, bilangan 1 tidak akan muncul pada bilangan 2-digit karena bilangan 1 hanya terdiri dari 1 buah digit. Selamanya begitu. Tidak bisa “naik pangkat” menjadi bilangan 2-digit.
Sebaliknya, pada kasus leading zero, bilangan 1 akan muncul pada bilangan 2-digit. Yaitu dengan memberikan awalan 0 (leading zero) pada bilangan 1, maka akan dihasilkan bilangan baru 01 yang panjangnya 2 digit. Kita katakan “1 naik pangkat menjadi bilangan 2-digit”.
Dari logika ini, semua bilangan 1-digit akan naik pangkat menjadi bilangan 2-digit, lalu naik pangkat menjadi bilangan 3-digit, dan seterusnya sampai menjadi bilangan n-digit.
Dari logika yang sama, semua bilangan 2-digit akan naik pangkat menjadi bilangan 3-digit, lalu naik pangkat menjadi bilangan 4-digit, dan seterusnya sampai menjadi bilangan n-digit.
dst..
Begitu pula dengan bilangan (n-1)-digit. Bilangan ini akan naik pangkat menjadi bilangan n-digit.
Lantas, apa hubungan antara bilangan non-leading zero dan leading zero?
Misalkan :
adalah fungsi yang menghitung banyaknya kemunculan ’1′ pada seluruh bilangan n-digit non-leading zero.
adalah fungsi yang menghitung banyaknya kemunculan ’1′ pada seluruh bilangan n-digit leading zero.
Secara intuitif kita tahu bahwa
pasti lebih besar dari
. Hal ini cukup jelas juga secara matematis, mengingat bilangan-bilangan yang leading zero boleh menggunakan 0, sementara bilangan-bilangan yang non-leading zero tidak.
Cukup jelas juga bahwa selisih antara
dan
berasal dari bilangan-bilangan yang “naik pangkat”.
Lantas, berapa banyak bilangan-bilangan yang “naik pangkat”?
Semua bilangan-bilangan berdigit lebih kecil dari
akan naik pangkat. Mulai dari berdigit 1 sampai berdigit n-1.
Banyaknya bilangan berdigit 1 yang naik pangkat adalah 
Banyaknya bilangan berdigit 2 yang naik pangkat adalah 
Banyaknya bilangan berdigit 3 yang naik pangkat adalah 
dst…
Banyaknya bilangan berdigit n-1 yang naik pangkat adalah 
Sehingga, total bilangan yang naik pangkat adalah 
Jika dikembalikan ke relasi antara
dan
, maka akan kita peroleh :

Pra-Pembahasan 3 (Sebaran Bilangan yang Mengandung karakter ’1′ Pada Bilangan n-digit Leading Zero)
Misalkan pada seluruh bilangan n-digit leading zero, terdapat :
buah bilangan yang mengandung karakter ’1′
buah bilangan yang tidak mengandung karakter ’1′
buah kemunculan karakter ’1′.
Jelas sekali bahwa relasi antara
dan
adalah 
Selanjutnya, kita asumsikan :
- Ada
buah bilangan yang mengandung 1 buah karakter ’1′
- Ada
buah bilangan yang mengandung 2 buah karakter ’1′
- Ada
buah bilangan yang mengandung 3 buah karakter ’1′
- dst…
- Ada
buah bilangan yang mengandung n-1 buah karakter ’1′
- Ada
buah bilangan yang mengandung n buah karakter ’1′
Banyaknya bilangan yang mengandung karakter ’1′ adalah
alias
.
Sehingga kita peroleh invarian 
Sebaliknya, banyaknya kemunculan karakter ’1′ adalah
alias
.
Sehingga kita peroleh invarian lainnya, yakni 
Bagaimana dengan
, adakah cara untuk menghitungnya?
Untuk mencari nilai
tidak terlalu sulit. Cukup menggunakan “pohon kemungkinan”.
Karena terdiri dari n-digit dan leading zero, maka setiap digit-nya boleh menggunakan bilangan-bilangan pada himpunan
yang banyaknya (kardinalitas) ada 9 buah. Sehingga :


Pembahasan
Misalkan
adalah sebuah bilangan
digit.
Bilangan ini dapat kita pecah menjadi 2 bagian yaitu
dan
dimana :
jelas merupakan bilangan 1 digit dan tidak boleh dimulai dengan 0 (non-leading zero).
Sehingga himpunan bilangan yang mungkin untuk
adalah
.
- Sedikit berbeda,
merupakan bilangan (n-1)-digit yang boleh dimulai dari 0.
Sehingga himpunan bilangan yang mungkin untuk
adalah
.
Secara intuitif, kita dapat menyadari bahwa munculnya karakter ’1′ hanya mungkin terjadi dalam 3 buah kasus, yaitu :
- Karakter ’1′ hanya disumbangkan oleh

- Karakter ’1′ hanya disumbangkan oleh

- Karakter ’1′ disumbangkan oleh kedua pihak, yaitu
dan 
Kasus 1
Karena karakter ’1′ hanya disumbangkan oleh
, berarti :
- Hanya ada 1 buah nilai yang mungkin untuk

- Ada
buah nilai yang mungkin untuk 
Sehingga :
- Banyaknya bilangan yang mengandung ’1′ pada kasus 1 adalah

- Banyaknya kemunculan karakter ’1′ ada sebanyak
kali
Catatan : Walaupun
tidak memiliki satupun karakter ’1′, namun
berjumlah
buah. Ketika dipasangkan dengan
maka akan muncul
buah karakter ’1′ yang baru.
Kasus 2
Dalam kasus ini, karakter ’1′ hanya disumbangkan oleh
, yang berarti :
- Ada 8 buah nilai yang mungkin untuk
, yaitu 
- Ada
buah nilai yang mungkin untuk 
- Ada
buah kemunculan karakter ’1′ pada 
Sehingga :
- Banyaknya bilangan yang mengandung ’1′ pada kasus 2 adalah

- Banyaknya kemunculan karakter ’1′ ada sebanyak
kali
Kasus 3
Kasus ini adalah kasus yang paling tricky. Perhatikan bahwa :
- Ada 1 buah nilai yang mungkin untuk

- Ada
buah nilai yang mungkin untuk 
- Ada
buah kemunculan karakter ’1′ pada 
Sebaran dari
adalah 
Ketika digabungkan dengan
, sebarannya akan naik menjadi
.
Catatan : Kenaikan sebaran terjadi karena terjadi penggabungan (concatenation) dengan karakter ’1′ yang berasal dari
. Sebagai contoh, bilangan 31216 semula memiliki 2 buah karakter ’1′. Ketika dibubuhi prefix ’1′ akan menjadi 131216 yang mengandung 3 buah karakter ’1′.
Jika disederhanakan, bentuk di atas akan menjadi :

Sehingga :
- Banyaknya bilangan yang mengandung ’1′ pada kasus 3 adalah

- Banyaknya kemunculan karakter ’1′ ada sebanyak
kali
Rumus Umum Untuk Menghitung Banyaknya Bilangan n-digit yang Mengandung Karakter ’1′
Untuk mencari rumus umum banyaknya bilangan pengandung karakter ’1′ akan kita gabungkan ketiga kasus :

Karena
adalah banyaknya bilangan pada
yang tidak mengandung karakter ’1′, maka nilai dari
adalah 
Dengan mensubstitusikan
kita peroleh :

Rumus di atas adalah rumus umum untuk mencari banyaknya bilangan n-digit yang mengandung karakter ’1′ di dalamnya.
Rumus Umum Untuk Menghitung Kemunculan Karakter ’1′ Pada Bilangan n-digit
Sama seperti sebelumnya, untuk mencari rumus umum kemunculan, akan kita gabungkan ketiga kasus :

Kita peroleh rumus umum untuk mencari
. Mari kita cicip rumus kita :

Walaupun rumus ini dapat memberikan hasil perhitungan dengan benar, namun rumus ini kurang ‘pas’ untuk diandalkan karena rumus ini bersifat rekursif dan sangat tergantung pada hasil-hasil perhitungan pada digit-digit sebelumnya.
Sekarang akan kita coba untuk memodifikasi rumus ini menjadi sedikit lebih baik. Perhatikan beberapa aljabar di bawah ini :



dst…

Catatan : Aljabar di atas bukan pembuktian matematika yang sah. Walaupun demikian, pola aljabar di atas akan terus berulang-ulang dan hasilnya akan sama seperti yang ada di atas. Pembuktian matematis yang sah diserahkan kepada pembaca.
Sekarang, kita dapat menghitung
dengan mudah, tanpa harus rekursif lagi

Rumus yang terakhir ini adalah rumus yang kita inginkan. Rumus ini mampu “loncat” langsung ke digit yang kita inginkan tanpa harus menghitung satu persatu setiap digit mulai dari 1, 2, 3, …, sampai n-1.
Jawaban Atas Pertanyaan
Terkait dengan pertanyaan yang diajukan di awal artikel.
- Banyaknya bilangan di dalam himpunan tersebut yang mengandung karakter ’1′ ada sebanyak :

- Banyaknya kemunculan karakter ’1′ ada sebanyak :

Catatan : Perhatikan bahwa dalam soal di atas penulis mengasumsikan bahwa 1 dan 1000 diikutsertakan dalam perhitungan (inclusive). Dengan demikian rentang 1-1000 melibatkan 3 buah digit, yaitu digit 1, digit 2, dan digit 3 plus angka 1000 itu sendiri.
Angka 1 pada perhitungan di atas datang dari angka 1000 yang banyaknya ada 1 dan jelas sekali mengandung karakter ’1′ di dalamnya.
