Tuesday, 12 October 2021

Partial Permutations (Rosalind)

 

   rosalind


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 :
  1. static void solve() {
  2. int n = ni();
  3. int k = ni();
  4. long res = 1L;
  5. for (int i = n; i > n - k; i--) {
  6. res *= i;
  7. res %= 1000000;
  8. }
  9. out.println(res);
  10. }
  11.     
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 integerFungsi 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 outputdi 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