Jadi bagi yang ingin memulai karir di dunia olimpiade, sebaiknya dibaca terlebih dahulu ke-3 jenis soal yang akan saya beri dan akan saya bahas juga di posting ini. Ke-3 nya adalah Algoritma, Aritmatika dan Logika.
Algoritma
Apa algoritma untuk memindahkan isi dari 2 gelas yang isinya berbeda? Dimisalkan, ada 2 gelas, gelas A berisi teh dan gelas B berisi kopi. Bagaimana cara menukar isi gelas A dan gelas B?
Pembahasan :
Di bawah ini adalah cara meng-solve problem di atas secara algoritma (secara sistematik).
Deklarasi (penyediaan barang - analoginya sih gitu :P)
Sediakan sebuah gelas tampungan (temporary).
Deskripsi (proses atau pengerjaan)
- Pindahkan isi gelas A (teh) ke dalam gelas tampungan (awalnya kosong).
- Pindahkan isi gelas B (kopi) ke dalam gelas A (kosong). (setelah ini gelas A berisi kopi)
- Pindahkan isi gelas tampungan ke dalam gelas B (kosong). (setelah ini gelas B berisi teh)
- kopi dan teh siap di minum. :P (maaf, alur ke-4 hanya bercanda)
Jadi, bisa dilihat bahwa cara menyelesaikan sesuatu secara algoritma harus lah secara sistematik. Algoritma itu sendiri berarti tata cara melakukan sesuatu secara berurut, maka penyelesaian sebuah problema - itu harus di lakukan dengan sistematik dan real (bukan bo'ongan).
Aritmatika
Tentukan digit terakhir dari 1000! (dibaca "1000 faktorial").
Pembahasan :
Kita tentu tidak mau menjadi orang kurang kerjaan yang mencari 1000!.
ohya. apakah kalian udah tau apa itu faktorial?
Faktorial tuh gini lho.
3! = 3.2.1 = 6
4! = 4.3.2.1 = 24
0! = 1
Tentu kalian tidak mau menghitung 1000! = 1000.999.998. ...dst... hahaha. tentu tidak.
Sebenarnya kunci dari mengerjakan soal seperti ini adalah menemukan polanya. Kita hanya perlu mencari perulangan pola yang di hasil kan digit terakhirnya.
berikut pola n! untuk mencari digit terakhir dari 1000! :
untuk n! = n.n-1.n-2. ...dst...
untuk 1! = 1
untuk 2! = 2
untuk 3! = 6
untuk 4! = 24 (digit terakhir 4)
untuk 5! = 120 (digit terkahir 0) (nah ini dia!!)
rupanya pada 5! - digit terakhirnya adalah 0. coba kita pikirkan baik-baik, jika 0 dikalikan dengan apa pun, maka bilangan tersebut hasilnya juga akan 0.
maka n! untuk n>5, digit terakhirnya selalu 0.
yuk kita buktikan.
untuk 6! = 720
untuk 7! = 5040 (nah! digit terakhirnya selalu 0 kan?)
jadi dapat di tentukan bahwa digit terakhir dari 1000! faktorial adalah 0. :)
Logika
Di sebuah pulau terdapat dua golongan penduduk, ksatria yang selalu bicara jujur, dan yang lain adalah penipu yang selalu berbohong. Jika anda bertemu dengan dua orang A dan B. Golongan apakah yang tepat untuk A dan B jika A berkata 'B adalah seorang ksatria' dan B berkata 'golongan kami berbeda'?
apakah A seorang ksatria dan B adalah penipu? atau..
apakah sebaliknya? atau..
duadua nya adalah ksatria? atau.. duaduanya adalah penipu? atau..
mereka tidak pasti adalah penipu ataupun ksatria?
Pembahasan:
Cara untuk menyelesaikan soal seperti ini adalah menelusuri pernyataan yang ada.
Pernyataan yang kita dapat adalah Ksatria=Jujur, Penipu=Berbohong, lalu..
A = 'B adalah seorang ksatria'
B = 'Golongan kami berbeda'
jadi coba kita telusuri percakapan mereka
- awalnya A mengatakan bahwa B adalah seorang ksatria. maka B pastilah berkata jujur.
- B berkata jujur bahwa 'golongan kami berbeda'. maka A pasti pembohong karena golongan B adalah yang jujur=ksatria, tentu A sebaliknya karena B jujur berkata bahwa golongan mereka berbeda. nah, mari kita lanjutkan..
- A berbohong berkata bahwa 'B adalah ksatria' (eh! lho kok?) artinya B adalah pembohong.
- Untuk kesimpulan di atas kita telah menemukan bahwa A dan B itu adalah pembohong. tapi? apakah betul? mari kita telusuri lagi.
- Jika B berbohong, maka B berbohong berkata bahwa 'golongan kami berbeda'. maka sebenarnya ia mengatakan 'golongan kami sama' - yaitu samasama pembohong!!
Jadi kita dapat menyimpulkan sesuatu dengan menelusuri pernyataan nya. tapi tidak semua soal logika dapat di selesai kan dengan cara ini. tapi gunakan lah logika.
3 jenis soal di atas adalah pengenalan untuk kalian semua untuk memasuki olimpiade komputer. namun untuk soal algoritma, itu tidak akan muncul dalam soal teori, itu akan hanya muncul pada saat kalian ingin membuat program pada sesi praktek dan tentu itu di tulis dengan bahasa pemograman, bukan dengan bahasa manusia. :P hahaha.
Menarikkan? Jadi, ikutilah olimpiade komputer dan jangan lupa follow kurakuraprogrammer :) terima kasih sudah membaca.
Bye! salam kurakura :)
Source soal Analitik dan Logika
from Sample_OSK
wrote by TOKI (Tim Olimpiade Komputer Indonesia)
Post Wrote by : Kurakura Programmer
lengkap bnget
BalasHapushahahahaha..........
ndeeeh ...
BalasHapusni semua kan soal yg pas di lab komputer ...
huahahaha ...
lanjutin y kurakura ...
aq bkal jadi pembaca setia ...
huahaha ...
misi.. msh kurang pham yg logika... XD
BalasHapusgw bsk lusa bklan ad Olimpiade Komputer.. doian ya...
mw tnya nih min, biasa na klo olim tu soal na PG? ato iisian y??
ad praktek na g y??
Trims
yang bagian algoritma mana gan..???
BalasHapusbesok saya akan mengikuti olimpiade komputer..
BalasHapusDo'a-in saya yaa...!!!
bro numpang nanya...apa bedanya kombinasi sama permutasi...
BalasHapusbutuh jawaban cepat...
kalo bisa perbedaan yang paling menonjol...
Komentar ini telah dihapus oleh pengarang.
Hapus3 hari lagi saya akan mengikuti olimpiade komputer doakan saya ya adminn dan teman"..
BalasHapusuh she up
BalasHapus