May 14
Pendahuluannya 145, digitnya 1,4,5. Nah 1!+4!+5! = 1+24+120 = 145. Rumusan masalahnya, Berapa jumlah semua bilangan yang nilainya sama dengan jumlah faktorial digitnya, seperti 145 itu?
Sebenernya ini apa ya sebutannya? Brute force juga lah. Karena digit itu antara 0 sampai 9, jadi kira-kira maksimum bilangannya kurang dari 9 faktorial, 362880. Pembuktiannya, nggak ngerti saya. Itu sebenernya ngasal aja, hehe, kebetulan bener.
Jadi stepnya dari 362880 sampai 1, dihitung tiap bilangan apakah sama dengan jumlah faktorial digitnya. Tentu, sebelumnya dibikin dulu nilai faktorial dari 0 sampai 9. Sebenernya agak mubazir juga cara ini, karena hanya 2 angka saja, 145 tadi, dan angka sekitar 40ribuan (hitunglah sendiri, biar seru). Angka 1 dan 2 tidak masuk hitungan, karena bukan hasil penjumlahan faktorial digit.
Belakangan saya baru tau, bilangan-bilangan ini disebut Factorion.
May 14
Problem 29 ini, lagi-lagi bisa selesai dengan jurus asal-paksa, tentu saja dengan bantuan ular Python. Pertanyaannya, ada berapa nilai ab yang berbeda untuk 2<=a<=100 dan 2<=b<=100? Kemungkinan terbesar cuma 99*99 atau 9801 biji, sedikit itu. Tapi ya jumlahnya nggak sebanyak itu, karena misalnya saja 2^4 sama 4^2 kan ya..
Step yang saya kerjakan:
- Buat list kosong, list ini untuk menyimpan hasil hitungan ab.
- Hitung ab untuk a 2 sampai 100, masing-masing b dari 2 sampai 100 juga.
- Tiap hasil ab tadi, dicek apakah sudah ada di dalam list, kalau belum, masukkan ke dalam list.
- Setelah beres, hitung jumlah anggota list.
- Beres.
May 14
Problem ini ternyata bisa diselesaikan pake jurus brutal alias bruteforce. Inti persoalannya, mencari jumlah nCr yang nilainya lebih besar dari sejuta untuk 1<=n<=100. Yah kita tau kalau nCr itu maksudnya kombinasi r elemen dari set yang jumlahnya n. Di soalnya juga ada rumus carinya. Karena n antara 1 sampai 100 dan r lebih kecil samadengan 100, jadi cuma ada 10000 kemungkinan kombinasi. Pake python, sedikit itu. Python juga bisa menghitung angka besar tanpa perlu kode aneh-aneh, jadi, ya itu tadi, bisa diselesaikan dengan bruteforce.
Cara saya, bikin dulu list faktorial 1 sampai 100. Pake cara apa itu namanya, dynamic programming mungkin, gak ngertilah. Tinggal dikali-kali saja listnya, jadi. Step berikutnya, iterasi n 1 sampai 100, iterasi r 1 sampai n, hitung nCr. Tiap nilainya lebih dari 1000000, dihitung. Beres.
Ah, kebanyakan bikin laporan, jadi aneh gini nulis blog.
Jan 27
Direkam di lembah cisitu pas magrib
Jan 20
Install dulu inkscapenya. Paket lain yang saya install, urut abjad: avahi-0.6.25, cairomm-1.8.4, gc-7.1, glibmm-2.22.2, gnome-vfs-2.24.3, gsl-1.14, gtkmm-2.18.2, libsigc++-2.2.8, libwpg-0.1.3, pangomm-2.26.2. Semua paket bisa didownload dari
http://repository.slacky.eu/slackware-13.1/. Menginstallnya tidak harus urut, installpkg nggak akan ngecek dependensi.
Jan 16
Ini contoh acara di google calendar
Dec 28
Tertulis di blog Emma Alvarez:
Cream, Many people in Linux use Vim to edit files. Cream makes easier for the beginner to use Vim, as it is an improved Vim.
Vim sendiri adalah
Vi improved, maka improved Vim sama dengan improved^2 vi.
Dec 28
Livescience membuat daftar
10 cara menghancurkan bumi. Paling menarik adalah cara nomer 2, menggunakan mesin
von Neuman, mesin yang bisa membuat replika firinya dari bahan-bahan mentah. Planet bumi akhirnya berubah jadi mesin von newman. Mungkin seperti manusia yang tumbuh terus tak terkendali.