3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function calc($o) { $wyniki = array(); foreach($o as $x) { $wyniki[] = ($x*$x) - (2*$x) + 2; } return $wyniki; } function proc($wyniki, $suma) { $proc = array(); foreach($wyniki as $y) { $proc[] = $y / $suma * 100; } return $proc; } function krzyzowanie($para) { $dzieci = array(); $start = rand(1,4); $ile = 5 - $start; $dzieci[] = substr_replace($para[0],substr($para[1],-$ile),$start,$ile); $dzieci[] = substr_replace($para[1],substr($para[0],-$ile),$start,$ile); return $dzieci; } function ruletka($ruletka, $l, $nr) { $i=0; do{ $ruletka[] = $obin[$nr]; $i++; }while ($i>=$l); return $ruletka; } $o = array(3,8,14,19,24,29); //shuffle($o); $ob = array(); $obin = array(); foreach($o as $b) { $ob[] = decbin($b); } foreach($ob as $c) { $obin[] = str_pad($c, 5, "0", STR_PAD_LEFT); } $wyniki = calc($o); // wartosci osobnikow po przeliczeniu przez funkcje $suma = array_sum($wyniki); // suma^ $procent = proc($wyniki, $suma); // zmienna okreslajaca prawdopodobienstwo wylosowania osobnika $zaokraglone = array(); foreach($procent as $k) { $k = $k*100; $zaokraglone[] = intval($k); } $ruletka = array(); //tablica z 10000 elementow, z niej losowane sa pary rodzicow $ruletka = ruletka($ruletka, $zaokragone[0], 0); $ruletka = ruletka($ruletka, $zaokragone[1], 1); $ruletka = ruletka($ruletka, $zaokragone[2], 2); $ruletka = ruletka($ruletka, $zaokragone[3], 3); $ruletka = ruletka($ruletka, $zaokragone[4], 4); $ruletka = ruletka($ruletka, $zaokragone[5], 5); $para1 = array(); $para3 = array(); $para3 = array(); $para1[] = array_rand($ruletka); $para1[] = array_rand($ruletka); while ($para1[0] == $para1[1]) { $para1[1] = array_rand($ruletka); } $para2[] = array_rand($ruletka); $para2[] = array_rand($ruletka); while ($para2[0] == $para2[1]) { $para2[1] = array_rand($ruletka); } $para3[] = array_rand($ruletka); $para3[] = array_rand($ruletka); while ($para3[0] == $para3[1]) { $para3[1] = array_rand($ruletka); } $dzieci1 = krzyzowanie($para1); $dzieci2 = krzyzowanie($para2); $dzieci3 = krzyzowanie($para3); //echo "Osobniki: "; //print_r($o); //echo "\nWyniki funkcji dopasowania: "; //print_r($wyniki); //echo $suma; //echo "\nProcentowo: "; //print_r($procent); //print_r($obin); //echo "\nLosowo dobrane pary osobnikow - rodzice: "; //print_r($pary); //echo "\n\n---------------------------------------------------------"; //echo "\nDzieci po operacji krzyzowania: "; //print_r($dzieci1); //print_r($dzieci2); //print_r($dzieci3); $dzieci_dec[] = bindec($dzieci1[0]); $dzieci_dec[] = bindec($dzieci1[1]); $dzieci_dec[] = bindec($dzieci2[0]); $dzieci_dec[] = bindec($dzieci2[1]); $dzieci_dec[] = bindec($dzieci3[0]); $dzieci_dec[] = bindec($dzieci3[1]); //print_r($dzieci_dec); $wyniki_d = calc($dzieci_dec); $suma_d = array_sum($wyniki_d); $procent_d = proc($wyniki_d, $suma_d); //print_r($wyniki_d); //echo $suma_d; //print_r($procent_d); ?>