Skip to main content

Akhirnya Ketemu Juga Segitiga Paskal ini

segitiga paskal - pascal

Alhamdulillah, akhirnya ketemu juga coding untuk membuat segitiga paskal dengan tampilan seperti di gambar atas ini. Rasa penasaran dalam hati terbayar sudah. Googling dari kemarin-kemarin mencari coding yang siap pakai, tapi kebanyakan semuanya menampilkan segitiga siku-siku rata kiri, tidak begitu menggambarkan segitiga sama kaki. Akhirnya saya berkutat selama dua hari ini dengan kemampuan coding saya yang terbatas. Tidak sia-sia ternyata saya sampai-sampai menjelang tidur masih memikirkan algoritma yang tepat dengan kemampuan otak saya.

Kenapa saya bersusah-susah untuk hal ini? Alasannya sih lumayan sepele, saya tidak bisa melakukannya saat ada tes kerja, sehingga membuat saya terus berpikir dan berpikir sampai sekarang. Bagaimana tidak penasaran, pewawancaranya meminta saya buat menampilkan segitiga paskal dengan tampilan seperti itu. Bingungnya bukan di algoritma menghasilkan angka-angkanya, tetapi bingung bagaimana cara untuk menampilkannya sesuai permintaan pewawancara. Bermodalkan spidol dan whiteboard saat itu, saya menyerah dalam waktu 5 menit saja.

Yah mungkin bukan rejeki saya diterima bekerja di tempat tersebut. Nah, karena saya orangnya penasaran kalau belum dapat jawaban, akhirnya terciptalah coding php dibawah ini untuk menampilkan segitiga paskal ini.


<?php
//generate initial array. maks nilai init 26 biar tampilannya bagus :p
$init = 10;
while ($init > 0){
 $init_array[] = 0;
 $init--;
 if($init == 0) {
  $initarray = $init_array;
  $min_satu = array_pop($initarray);
  $initial_g = array_merge($init_array, $initarray);
 }
}

$lvl1 = $init_array;
$lvl1[0] = 1;
$ceil = count($lvl1) - 1;
$index = 0;
//generate all candidats for pascal triangle
while($ceil >= 0){
for ($i=0; $i <= $ceil; $i++)
{
 if($i != $ceil){
  $a = $i+1;
  $lvl1[$a] = $lvl1[$i] + $lvl1[$a];
  continue;
 }
 $segitiga[] = $lvl1;
 $ceil--;
}

}

$batas = count($lvl1);
$middle = ($batas*2-2)/2-2;
//make template for print like triangle
for($index1 = 0; $index1 < $batas; $index1++){
 $kiri = $index1; $index2 = 0;
 $temp = $initial_g;
 $mid = $middle;
 for(;$kiri >=0;){
  //echo $segitiga[$kiri--][$index2++] . "\t";  
  $mid+=2;
  $temp[$mid] = $segitiga[$kiri--][$index2++]; 
 }
 $tampilan[] = $temp;
 $middle--;
}

//print the triangle
echo "<pre>";
foreach($tampilan as $key => $value){
 foreach($value as $keys => $values){
  if($values == 0){
   echo "\t";
   continue;
  }
 echo $values."\t";
 }
}
echo "<pre>";
?>
Pokoknya sekarang udah lega, tidak kepikiran lagi sama segitiga paskal ini. Saya yakin masih ada yang lebih simple dari ini, tapi untuk otak saya ini adalah yang paling bisa saya cerna. Waktunya tidur

Comments

  1. Keren bg algoritmanya.

    Saya adalah peneliti kegunaan segitiga pascal di kehidupan.
    Saya suka matematika, banyak problem bisa diselesaikan dengan konsep segitiga pascal. Cuma ini baru dapat algoritma yang simple, low memory/cpu cons. (Fast), dari blog ini.

    Saya lagi penasaran sama algoritma bilangan random (orang google masih merahasiakannya). Katanya sih dari noise2 saat cpu beroperasi.

    Function random gakmungkin bisa sama dua kali, dari 100juta kejadian. Kira2 bisa gak bang buat algoritmanya?

    Kalau bisa berguna tu untul AI. Anti caos dan tabrakan.

    ReplyDelete

Post a Comment

Popular posts from this blog

Jualan gambar dan video di internet, bisa?

 Disclaimer: Saya bukan mau sok ngajarin sih ya, soalnya saya aja baru beberapa waktu ini kepikiran dan nemu beberapa referensi untuk Jualan gambar dan video di internet. Jadi mohon maaf ya kalau ada pertanyaan yang tidak bisa saya jawab secara teknis karena masih newbie. Jadi ceritanya begini ya. Awalnya merasa ternyata memori di handphone itu kok cepat banget habisnya. Pas dicek ternyata didominasi sama gambar dan video. Kepikiran untuk rutin pindahin gambar sama video dari handphone ke personal computer saya. Tapi lama-lama kok malah harddisk PC nya yang full. Alhasil mulailah ngorek-ngorek file lama yang mana tau bisa dibuang untuk menghemat space harddisk. Diliatin satu per satu gambar sama video lama, pengen dihapus sayang tapi kalau ga dihapus jadi sampah. Nah dari sinilah mulai kepikiran kenapa ga di-upload aja ke internet, ke cloud gitu, biar nantinya bisa dibuka kapan aja dan dimana saja.  Pertanyaan selanjutnya kan sayang juga gambar-gambar yang sifatnya tidak priva...

Rintangan, Senyum, Ikhlaslah

Teruslah berlari dengan kaki kecilmu Sekalipun jatuh tetaplah kembali berdiri Lepaskan tawa dalam sedih Luluhkan semua gundah yang terperangkap Semua akan menjadi kenangan terindah Rintangan akan silih berganti menghampiri Hadapi dengan senyuman dan keikhlasan

Share Test Calon Pegawai Bank BRI

Pengen sharing lagi nih tentang test pencari kerja. Sekarang saya ingin menceritakan tentang pengalaman testing di penerimaan salah satu bank BUMN yang sudah tentu semua orang kenal, Bank BRI. Mendengar nama Bank BRI saja para pelamar dan fresh graduated sudah memikirkan gaji besar, hehehe. Tidak bisa dipungkiri dengan tersebarnya bank BRI sampai ke pelosok kecamatan, membuat bank BRI dikenal luas oleh masyarakat. Untuk penerimaan pegawai baru di BRI bisa dibilang sebenarnya lumayan cepat. Karena BRI sering kerja sama dengan kampus-kampus besar di Indonesia. Tapi beberapa tahun belakangan ini penerimaan masih berpusat di pulau Jawa. Cukup sering ikut nyobain test masuknya, ada kira-kira 5 kali melamar. Dari 5 kali lamaran itu cuma bisa 2 kali lolos administrasi, itu pun di kampus almamater sendiri. Pas nyoba di lokasi yang lain tidak pernah lolos administrasi, hahahaha. Sebenarnya simpel banget tahapan test yang dilakuin oleh pihak BRI. Ketika mereka kerja sama dengan pihak kampus,...