Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Partial Permutations". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini).
Overview
Di problem ini kita akan disajikan 2 sebuah integer yang mewakili "jumlah angka yang diambil" dan "jumlah total angka yang ada", sebut saja k dan n (problem ini sama dengan soal permutasi yang kita pelajari ketika SMA). Tugas kita ialah menentukan permutasi dari P(n, k).
Kode Pengerjaan
Berikut kode pengerjaannya dalam bahasa java :
- static void solve() {
- int n = ni();
- int k = ni();
- long res = 1L;
- for (int i = n; i > n - k; i--) {
- res *= i;
- res %= 1000000;
- }
- out.println(res);
- }
Penjelasan Kode
Sepertinya sudah cukup jelas; jawabannya ialah (n - k)!. Jadi, langsung saja kita cari hasilnya dengan modular 1.000.000 (baris 5-8).
Input dan Output
Seperti yang teman-teman lihat; disini, saya memakai fungsi ni() (baris 2 & 3) untuk meng-input data integer. Fungsi tersebut adalah extend dari salah satu sistem input di java, yaitu BufferedReader.
Sedangkan untuk output-nya saya memakai fungsi out.println() (baris 9). Fungsi tersebut juga adalah modifikasi dari fungsi System.out.println() yang merupakan fungsi default di java. Untuk lebih jelasnya, teman-teman bisa melihat kode tambahan untuk memodifikasi fungsi tersebut (input maupun output) di versi lengkap kode saya di github.
Sekian dari saya. Jika teman-teman ingin menanyakan sesuatu, teman-teman bisa menulisnya di kolom komentar. Semoga bermanfaat dan sampai jumpa di artikel berikutnya!
Referensi :
Sumber gambar 1 :https://www.facebook.com/ProjectRosalind/
No comments:
Post a Comment