Halo teman-teman, apa kabar? Kali ini saya ingin membahas sedikit tentang salah satu problem yang ada di web rosalind.info. Judulnya ialah "Calculating Expected Offspring". Sebagai acuan, teman-teman bisa cek dahulu problem yang akan kita bahas (disini).
Di problem ini kita akan disajikan 6 buah bilangan bulat (integer) yang mewakili jumlah pasangan-pasangan berikut:
1. AA-AA
2. AA-Aa
3. AA-aa
4. Aa-Aa
5. Aa-aa
6. aa-aa
Tugas kita ialah mencari expected value dari jumlah keturunan yang mempunyai fenotip dominan (AA & Aa) jika diambil 2 dari masing-masing pasangan.
Expected value sendiri ialah nilai rata-rata dari nilai semua kemungkinan. Sebagai contoh, expected value dari nilai semua kemungkinan lemparan dadu 1 kali ialah (3.5). Angka tersebut didapat dari nilai rata-rata semua kemungkinan dadu; (1 + 2 + 3 + 4 + 5 + 6) dibagi dengan 6.
Berikut kode untuk pengerjaannya (dalam bahasa java) :
1. static void solve() {
2. double[] val = {2, 2, 2, 1.5, 1, 0};
3. double tot = 0.0;
4. for (int i = 0; i < 6; i++) {
5. tot += val[i] * nd();
6. }
7. out.printf("%.1f\n", tot);
8. }
Seperti yang teman-teman lihat, kode pengerjaannya cukup simpel. Yang pertama saya lakukan ialah membuat variabel double[] val (baris 2).Variabel tersebut berisi probabilitas fenotip dominan dari keturunan masing-masing pasangan (AA-AA = 4/4, Aa-Aa = 3/4, dll) yang dikali dengan jumlah keturunan yang diambil (2).
Langkah selanjutnya ialah mengalikan variabel double[] val dengan jumlah pasangan yang disediakan.
Disini saya memakai fungsi nd() untuk meng-input data double. Fungsi tersebut adalah extend yang saya modifikasi dari salah satu sistem input yang ada di java, yaitu BufferedReader. Sedangkan untuk output-nya saya memakai fungsi out.printf() . Fungsi tersebut juga adalah modifikasi dari fungsi System.out.printf() 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/
Sumber gambar 2 :https://4eso7phymodee.wordpress.com/2015/03/22/mendels-laws/
No comments:
Post a Comment