Project Euler Problem 34, Factorion

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.

Project Euler Problem 29

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:

  1. Buat list kosong, list ini untuk menyimpan hasil hitungan ab.
  2. Hitung ab untuk a 2 sampai 100, masing-masing b dari 2 sampai 100 juga.
  3. Tiap hasil ab tadi, dicek apakah sudah ada di dalam list, kalau belum, masukkan ke dalam list.
  4. Setelah beres, hitung jumlah anggota list.
  5. Beres.

Project Euler Problem 53

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.

 

 

 

Suara Burung Kareo

Direkam di lembah cisitu pas magrib

Menjalankan Inkscape di Slackware 13.1

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.

Sarapan di Pecel Tegal

Sarapan

Ini contoh acara di google calendar

Improved^2 Vi

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. 

Pemetaan Genom Kakao

Selama ini kakao yang dibudidayakan berkualitas rendah karena lebih resisten hama. Pemetaan genom kakao diharapkan meningkatkan kualitas kakao yang resisten hama. 
via sciencedaily

Sepuluh Cara Menghancurkan Bumi

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.

About

Bisa membaca.
Mahasiswa biologi itb.

TwitterFacebookFlickrTumblr