Rabu, 28 November 2012

Mengacak Dengan Jumlah n Yang Telah Ditentukan


Mengacak Dengan Jumlah n Yang Telah Ditentukan

Contoh: Kita masukan angka yang terdiri dari
123456789  lalu dihitung panjang karakternya(dalam hal ini nilai angka tersebut diubah menjadi string untuk dihitung panjang nya)dibagi nilai n lalu dari panjang karakter ditentukan banyaknya yang akan dipecah dan berapa banyak bagian yang dihasilkan misal n= 2 (artinya setiap satu pasang terdiri dari dua karakter) bisa di bagi 3,4 dst .Dari Proses pemecahan(dengan menhitung panjang awal pecah sampai ke panjang pecah n,lalu dari panjang pecah n sampai kepanjang  pecah n selanjutnya sampai panjang karakter habis) maka jumlah karakter yang terbentuk tersebut maka akan menjadi 5 bagian yaituh:

12 34 56 78 9   nilai sembiilan adalah nilai sisa,karakter berupa string.

Kemudian dari 5 bagian tersebut di acak tidak berurut(random) Misal hasil:

347891256   Dengan keadaan masih berpasangan.

dari hasil acak random tersebut dapat dibagi lagi menjadi pecahan misalnya dengan n=3 atau bisa dengan dua kembali ,maka masing-masing akan menjadi 3 bagian yaituh:

347 891 256

kemudian di acak kembali,dan sampai seterusnya.Sampai anda merasa bosan.
Untuk lebih lanjut dapat dilihat dibawah ini:

 ACAK:

<html >
<head>
<title>ACAK</title>
</head>
<body>
<fieldset style="border:double #000000;">
<legend><b><font size="+2">Acak-Acak</font></b></legend>
         
          <?php
          echo '<form action="" method="post">';
          echo'Pilih Jumlah Bagi : <input type="radio" name="nilai" value=1 checked/>1<input type="radio" name="nilai" value=2 />2 <input type="radio" name="nilai" value=3 />3 <input type="radio" name="nilai" value=4 />4<input type="radio" name="nilai" value=5 />5<input type="radio" name="nilai" value=6 />6<input type="radio" name="nilai" value=7 />7<input type="radio" name="nilai" value=8 />8<br> <br>';
 echo '<textarea rows="5" cols="33" name="ACK0" style="font-size:36px;font-weight:bold;">';

include"fungsiacak.php";
if(isset($_POST['ACK'])){
$stringKu = $_POST['ACK0'];
$nilai = $_POST['nilai'];

// string asli akan dipecah menjadi substring dengan panjang n karakter
$pecah = pecahString($stringKu,$nilai); 

// menampilkan hasil pecahan
foreach($pecah as $substring => $data)
             {

             echo $data;/diganti dengan $substring maka akan menghasilkan  array[1][2][3][4][5[6] dst nilai ini inilah yang diacak bukan nilai yang terkandung didalamnya.
               }
 }
echo'</textarea>';
echo'<input type="submit" name="ACK" value="Acak" /><input type="reset" value="Reset" />';
echo'</form>';
?>
</fieldset>
</body>
</html>


//FUNGSI PECAH
<?php
function pecahString($string, $n){
   // mendapatkan jumlah substring yang terbentuk
   $m = ceil(strlen($string)/$n);

   // inisialisasi hasil
   $hasil = array();

  // proses pemecahan substring dan pengacakan
   for ($i=0; $i<=$m-1; $i++){
      $hasil[$i] = substr($string, $i*$n, $n); }
   shuffle($hasil);
   return $hasil;
   echo $m;
}
?>
*Bisa juga mengacak sesuai dengan Pecahan /jumlah bagi yang diinginkan.