Advertisement
imprfekt

Untitled

Jan 2nd, 2019
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 21.55 KB | None | 0 0
  1.  public function gcd(int $a, int $b)
  2.     {
  3.         if ($a == 0) {
  4.             return $b;
  5.         }
  6.         return $this->gcd($b % $a, $a);
  7.     }
  8.  
  9.     public function lcm($a, $b)
  10.     {
  11.         return abs($a * $b) / $this->gcd($a, $b);
  12.     }
  13.  
  14.     public function change()
  15.     {
  16.         $coins = [20, 10, 5, 2];
  17.  
  18.         $change = 158;
  19.  
  20.         $remaining = $change;
  21.  
  22.         foreach($coins as $coin) {
  23.  
  24.             $current = floor($remaining / $coin);
  25.  
  26.             if ( $current > 0 ) {
  27.                 $return[$coin] = $current;
  28.                 $remaining -= $current * $coin;
  29.             }
  30.  
  31.             if ( $remaining == 0 )
  32.                 break;
  33.  
  34.         }
  35.  
  36.         if ( $remaining > 0 )
  37.             echo 'NO' . PHP_EOL;
  38.         else
  39.             var_dump($return);
  40.  
  41.  
  42.  
  43.    //     die;
  44.         $coins = [25, 10, 5, 1];
  45.         $x = [];
  46.  
  47.         $change = 158;
  48.         //
  49.  
  50.        arsort($coins);
  51.         //sort($coins);
  52.  
  53.         // return $this->changeRecursive($change, )
  54.         $remains = $change;
  55.  
  56. //        foreach ($coins as $i => $val){
  57. //            $x[$i] = (int)($remains/$val);
  58. //            $remains %= $val;
  59. //        }
  60.  
  61.         for($i = 0; $i < count($coins); $i++){
  62.             $x[$i] = (int)($remains/$coins[$i]);
  63.             $remains %= $coins[$i];
  64.         }
  65.         if($remains > 0){
  66.             var_dump("NO"); die;
  67.         }
  68.         var_dump($x);
  69.         //todo Finish this task
  70.     }
  71.  
  72. public function circular() {
  73.         //sieve
  74.     $primes = [];
  75.     for($i = 2; $i < $N; $i++){
  76.         $primes[$i] = true;
  77.     }
  78.     $N = 100;
  79.     for($i = 2; $i <= $N; $i++){
  80.         $primes[$i] = false;
  81.         for($j = $i*$i; $j <= $N; $j=$j+$i){
  82.  
  83.         }
  84.  
  85.         //update i
  86.     }
  87. }
  88.     public function circular2()
  89.     {
  90.         $primes = [
  91.             2,
  92.             3,
  93.             5,
  94.             7,
  95.             11,
  96.             13,
  97.             17,
  98.             37,
  99.             79,
  100.             113,
  101.             197,
  102.             199,
  103.             337,
  104.             1193,
  105.             3779,
  106.             11939,
  107.             19937,
  108.             193939,
  109.             199933,
  110.         ];
  111.         $repunits = [2, 19, 23, 317];
  112.         // 22:56:30
  113.         // 23:02:45
  114.  
  115.         $N = 100;
  116.  
  117.         $primes['2'] = true;
  118.  
  119.         for ( $i = 3; $i <= $N; $i += 2 ) {
  120.  
  121.             $prime = true;
  122.  
  123.             for ( $j = 2; $j < $i; $j++ ) {
  124.  
  125.                 if ( $i % $j == 0 ) {
  126.                     $prime = false;
  127.                     break;
  128.                 }
  129.  
  130.             }
  131.  
  132.             if ( $prime ) {
  133.                 $primes['' . $i] = true;
  134.             }
  135.  
  136.         }
  137.  
  138.         $circulars = [];
  139.  
  140.         foreach ($primes as $key => $value) {
  141.  
  142.             $prime = $key . '';
  143.  
  144.             $circular = true;
  145.  
  146.             for ( $i = 0; $i < strlen($prime) - 1 ; $i++ ) {
  147.  
  148.                 $prime = $this->rotate($prime);
  149.  
  150.                 if ( ! isset($primes[$prime]) ) {
  151.                     $circular = false;
  152.                     break;
  153.                 }
  154.  
  155.             }
  156.  
  157.             if ( $circular )
  158.                 $circulars[] = intval($key);
  159.  
  160.         }
  161.  
  162.         var_dump($circulars);
  163.  
  164.  
  165.     }
  166.     function rotate($str) {
  167.  
  168.         return substr($str, 1) . $str[0];
  169.  
  170.     }
  171.  
  172.     public function toString($int)
  173.     {
  174.        // $str = (string)$int;
  175. //        var_dump($str);
  176. //        //die;
  177. //        $len = strlen($str);
  178. //        $result = "";
  179. //        $backwards = "";
  180. //        for ($i = $len - 1; $i >= 0; $i--) {
  181. //            $backwards .= $str[$i];
  182. //            if (($len - $i) % 3 == 0) {
  183. //                $backwards .= ",";
  184. //            }
  185. //        }
  186.  
  187.         $separator = '.';
  188.         $backwards = [];
  189.  
  190.         $i = 0;
  191.         $j = 0;
  192.         while ($int > 0) {
  193.             $backwards[$j] = $int % 10;
  194.             $i++;
  195.             $j++;
  196.             if ($i % 3 == 0) {
  197.                 $backwards[$j] = $separator;
  198.                 $j++;
  199.             }
  200.             $int = (int)($int / 10);
  201.         }
  202.  
  203.         //  var_dump($backwards);
  204.         //   die;
  205.         $j = $backwards[count($backwards) - 1] == $separator ? count($backwards) - 2 : count($backwards) - 1;
  206.         $result = "";
  207.         for (; $j >= 0; $j--) {
  208.             $result .= $backwards[$j];
  209.         }
  210.  
  211.         var_dump($result);
  212.     }
  213.  
  214.     public function difftime(){
  215.         //1532905320 29 juli 23:02
  216.         $timestamp = 1532905320;
  217.         $now = (new DateTime())->getTimestamp();
  218.         $now = 1533760080;
  219.  
  220.         $remaining = $now - $timestamp;
  221.  
  222.         $days = floor($remaining/(60*60*24));
  223.         $remaining -= $days*60*60*24;
  224.  
  225.         $hours = floor($remaining/(60*60));
  226.         $remaining -= $hours*60*60;
  227.  
  228.         $mins = floor($remaining/60);
  229.         $remaining -= $mins*60;
  230.  
  231.         $secs = $remaining;
  232.  
  233.         $str = "";
  234.         $arr = [ "day" => $days, "hour" => $hours, "minute" => $mins, "second" => $secs];
  235.  
  236.         foreach ($arr as $unit => $value) {
  237.             if($value > 0){
  238.                 $str .= "$value $unit";
  239.                 if($value > 1){
  240.                     $str .= "s";
  241.                 }
  242.                 $str .= ", ";
  243.             }
  244.         }
  245.  
  246.  
  247.         $str = rtrim($str, ", ");
  248.         $str = "9 hours";
  249.         $str .= " ago.";
  250.         $index = strrpos($str, ", ");
  251.         if($index !== false){
  252.             $str = substr_replace($str, " and ", $index, strlen(", "));
  253.  
  254.         }
  255.  
  256.         var_dump($str); die;
  257.  
  258.         $str = "";
  259.         $commaIndex = 0;
  260.  
  261.         if($days > 0){
  262.             $str .= "$days day";
  263.             if($days > 1){
  264.                 $str .= "s";
  265.             }
  266.             $str .= ", ";
  267.         }
  268.  
  269.  
  270.         echo "$days days, $hours hours, $mins minutes, $secs seconds";
  271.  
  272.     }
  273.  
  274.     public function razlomak()
  275.     {
  276.         $test = "A/B+C/D";
  277.         $test = "12/18+6/24";
  278.  
  279.         $fractions = explode('+', $test);
  280.  
  281.         $first = explode("/", $fractions[0]);
  282.         $second = explode("/", $fractions[1]);
  283.  
  284.         $a = $first[0];
  285.         $b = $first[1];
  286.         $c = $second[0];
  287.         $d = $second[1];
  288.         var_dump($a, $b, $c, $d);
  289.         $lcm = $this->lcm($b, $d);
  290.         echo "lcm : $lcm ";
  291.         $mulA = $lcm / $b;
  292.  
  293.         $mulC = $lcm / $d;
  294.  
  295.         $upper = ($a * $mulA) + ($c * $mulC);
  296.         echo "  upper: $upper ";
  297.         $gcd = $this->gcd($upper, $lcm);
  298.  
  299.         echo $upper / $gcd . "/" . $lcm / $gcd;
  300.     }
  301.  
  302.     public function mnswpr()
  303.     {
  304.         $input = '<<<LOL
  305. X 0 0 0 0 0 0
  306. 0 0 0 0 X 0 0
  307. 0 X 0 0 X 0 0
  308. 0 X 0 0 0 0 0
  309. LOL';
  310.  
  311.         $board = explode("\n", $input);
  312.         $board = array_slice($board, 1, count($board) - 2);
  313.         $board = array_map(function($item){
  314.             return explode(" ", $item);
  315.         }, $board);
  316.       //  var_dump($board); die;
  317. //        $board = [
  318. //            [1, 0, 0, 0, 0, 0, 1],
  319. //            [0, 0, 0, 0, 1, 0, 0],
  320. //            [0, 1, 0, 0, 1, 0, 0],
  321. //            [0, 1, 0, 0, 0, 0, 0]
  322. //        ];
  323.  
  324.         $bomb = PHP_INT_MAX;
  325.  
  326.         $count = [];
  327.         $rows = count($board);
  328.         $columns = count($board[0]);
  329.  
  330.         //var_dump($rows, $columns);
  331.         //die;
  332.         echo"<pre>";
  333.         for ($r1 = 0; $r1 < $rows; $r1++) {
  334.             for ($c1 = 0; $c1 < $columns; $c1++) {
  335.                 //check surrounding for each field
  336.                 if ($board[$r1][$c1] != 'X') {
  337.  
  338.                     $cnt = 0;
  339.                     for ($c2 = $c1 - 1; $c2 <= $c1 + 1; $c2++) {
  340.  
  341.                         for ($r2 = $r1 - 1; $r2 <= $r1 + 1; $r2++) {
  342. //                            echo "[$r2, $c2]<br>";
  343.                             if ($c2 >= 0 && $r2 >= 0 && !($c2 == $c1 && $r2 == $r1) && $c2 < $columns && $r2 < $rows) {
  344. //                                echo "usao <br>";
  345. //                                echo $board[$r2][$c2];
  346.                                 //it's within boundaries
  347.                                 if ($board[$r2][$c2] == 'X') {
  348.                                     $cnt++;
  349.                                 }
  350.                             }
  351.                         }
  352.                     }
  353. //                    echo $cnt;
  354. //                    die;
  355.                     $count[$r1][$c1] = $cnt;
  356.                     echo $cnt . " ";
  357.                 }else {
  358.                      echo "X ";
  359.                 }
  360.  
  361.             }
  362.             echo "<br>";
  363.         }
  364.         echo"</pre>";
  365.         var_dump($count);
  366.     }
  367.  
  368.     public function decks()
  369.     {
  370.         //0
  371.  
  372.         //1
  373.         $test = [
  374.             "QC",
  375.             "6D",
  376.             "KD",
  377.             "QS",
  378.             "7S",
  379.             "5C",
  380.             "QH",
  381.             "3H",
  382.             "AD",
  383.             "9C",
  384.             "7H",
  385.             "QD",
  386.             "QH",
  387.             "2S",
  388.             "AH",
  389.             "KS",
  390.             "5D",
  391.             "QC",
  392.             "AS",
  393.             "2D",
  394.             "6C",
  395.             "8C",
  396.             "7D",
  397.             "8H",
  398.             "9S",
  399.             "4D",
  400.             "6H",
  401.             "JC",
  402.             "3S"
  403.             ,
  404.             "4C",
  405.             "3C",
  406.             "7S",
  407.             "KD",
  408.             "4H",
  409.             "5C",
  410.             "7C",
  411.             "AS",
  412.             "3D",
  413.             "7D",
  414.             "2H",
  415.             "8S",
  416.             "2H",
  417.             "8D",
  418.             "9S",
  419.             "3C",
  420.             "5H",
  421.             "KS",
  422.             "8D",
  423.             "9H",
  424.             "TH",
  425.             "2C",
  426.             "JH",
  427.             "6D",
  428.             "KC",
  429.             "TS",
  430.             "6S",
  431.             "TD",
  432.             "4S"
  433.             ,
  434.             "8S",
  435.             "5S",
  436.             "8H",
  437.             "TD",
  438.             "9D",
  439.             "4H",
  440.             "6C",
  441.             "7C",
  442.             "AC",
  443.             "JC",
  444.             "JD",
  445.             "TS",
  446.             "KH",
  447.             "2C",
  448.             "QD",
  449.             "JS",
  450.             "QS",
  451.             "KH",
  452.             "8C",
  453.             "3H",
  454.             "2D",
  455.             "2S",
  456.             "3S",
  457.             "5H",
  458.             "4S",
  459.             "9C",
  460.             "4D",
  461.             "6H",
  462.             "JS"
  463.             ,
  464.             "TH",
  465.             "9H",
  466.             "TC",
  467.             "7H",
  468.             "JH",
  469.             "TC",
  470.             "6S",
  471.             "AD",
  472.             "AC",
  473.             "JD",
  474.             "4C",
  475.             "5D",
  476.             "9D",
  477.             "KC",
  478.             "3D"
  479.         ];
  480.  
  481.         $test = [
  482.             "9C",
  483.             "KS",
  484.             "AC",
  485.             "AH",
  486.             "8D",
  487.             "4C",
  488.             "KD",
  489.             "JC",
  490.             "7D",
  491.             "9D",
  492.             "2H",
  493.             "7C",
  494.             "3C",
  495.             "7S",
  496.             "5C",
  497.             "6H",
  498.             "TH",
  499.             "7H",
  500.             "QD",
  501.             "9S",
  502.             "KC",
  503.             "2D",
  504.             "4D",
  505.             "9H",
  506.             "4S",
  507.             "8H",
  508.             "3H",
  509.             "3S",
  510.             "5S",
  511.             "6S",
  512.             "TD",
  513.             "5H",
  514.             "8S",
  515.             "4H",
  516.             "6D",
  517.             "JD",
  518.             "TC",
  519.             "AD",
  520.             "JS",
  521.             "2C",
  522.             "5D",
  523.             "JH",
  524.             "QH",
  525.             "3D",
  526.             "KH",
  527.             "8C",
  528.             "TS",
  529.             "6C",
  530.             "QC",
  531.             "QS"
  532.         ];
  533.  
  534.         //3
  535.         //$test = ["2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD", "AH", "2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD", "AH", "2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD", "AH"];
  536.  
  537.         //2
  538.         //$test = ["2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD", "AH", "2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD", "AH", "2S", "2C", "2D", "2H", "3S", "3C", "3D", "3H", "4S", "4C", "4D", "4H", "5S", "5C", "5D", "5H", "6S", "6C", "6D", "6H", "7S", "7C", "7D", "7H", "8S", "8C", "8D", "8H", "9S", "9C", "9D", "9H", "TS", "TC", "TD", "TH", "JS", "JC", "JD", "JH", "QS", "QC", "QD", "QH", "KS", "KC", "KD", "KH", "AS", "AC", "AD"];
  539.  
  540.  
  541.         $ranks = ['2', '3', '4', '5', '6', 7, 8, 9, 'T', 'J', 'Q', 'K', 'A'];
  542.         $suits = ['S', 'C', 'H', 'D'];
  543.  
  544.         $count = [];
  545.  
  546.         foreach ($test as $card) {
  547.             if (isset($count[$card])) {
  548.                 $count[$card]++;
  549.             } else {
  550.                 $count[$card] = 1;
  551.             }
  552.         }
  553.  
  554.         $min = PHP_INT_MAX;
  555.         foreach ($ranks as $rank) {
  556.             foreach ($suits as $suit) {
  557.                 if (!isset($count[$rank . $suit])) {
  558.                     var_dump(0);
  559.                     return;
  560.                 } else {
  561.                     if ($count[$rank . $suit] < $min) {
  562.                         $min = $count[$rank . $suit];
  563.                     }
  564.                 }
  565.             }
  566.         }
  567.         var_dump($min);
  568.     }
  569.  
  570.     public function domino()
  571.     {
  572.         $S = "1-1";// => 1
  573.         $S = "1-2,2-2";// => 1
  574.         $S = "3-2,2-1,1-4,4-4,5-4,4-2,2-1";// => 4
  575.         $S = "5-5,5-5,4-4,5-5,5-5,5-5,5-5,5-5,5-5,5-5";// => 7
  576.         $S = "1-1,3-5,5-5,5-4,4-2,1-3";// => 4
  577.         $S = "1-2,2-2,3-3,3-4,4-5,1-1,1-2";// => 3
  578.  
  579.         if (strlen($S) === 0) {
  580.             var_dump(0);
  581.             return 0;
  582.         }
  583.  
  584.         $dominos = explode(",", $S);
  585.         $curr = 1;
  586.         $max = 1;
  587.         $length = count($dominos);
  588.  
  589.         for ($i = 0; $i < $length - 1; $i++) {
  590.             if ($dominos[$i][2] == $dominos[$i + 1][0]) {
  591.                 $curr++;
  592.             } else {
  593.                 if ($curr > $max) {
  594.                     $max = $curr;
  595.                 }
  596.                 $curr = 1;
  597.             }
  598.         }
  599.         if ($curr > $max) {
  600.             $max = $curr;
  601.         }
  602.  
  603.         var_dump($max);
  604.     }
  605.  
  606.     public function cards()
  607.     {
  608.         $A = [1, 2, 4, 3];
  609.         $A = [3, 2, 1, 4, 5];
  610.         $A = [2];
  611.         $B = [1];
  612. //        for($i = 0; $i < 100000; $i++){
  613. //            $A[$i] = $i;
  614. //            $B[$i] = $i;
  615. //        }
  616.         //  $B = [1,3,2,3];
  617.         // $B = [3,2,1,3,3];
  618.  
  619.         $temp = [];
  620.         for ($i = 0; $i < count($A); $i++) {
  621.             if ($B[$i] > $A[$i]) {
  622.                 $A[$i] = $B[$i];
  623.             }
  624.         }
  625.  
  626.         echo "A " . implode(", ", $A);
  627.         for ($i = 0; $i < count($A); $i++) {
  628.             $temp[$A[$i]] = true;
  629.         }
  630.  
  631.         echo "temp " . implode(", ", $temp);
  632.         for ($i = 1; $i < count($A); $i++) {
  633.             if (!isset($temp[$i])) {
  634.                 var_dump($i);
  635.             }
  636.         }
  637.  
  638.         var_dump(count($A) + 1);
  639.     }
  640.  
  641.     public function test1()
  642.     {
  643.         $a = [5, 5, 5];
  644.         //$a = [5,5,2,5,1,6];
  645.         //$a = [5,5,2,3,5,1,6];
  646.         $x = 5;
  647.  
  648.         $countX = 0;
  649.         $countO = 0;
  650.         $j = count($a) - 1;//ne treba oba da racunaju ovaj u sredini
  651.         for ($i = 0; $i < count($a) / 2 - 1; $i++) {
  652.             if ($a[$i] == $x) {
  653.                 $countX++;
  654.             }
  655.             if ($a[count($a) - 1 - $i] != $x) {
  656.                 $countO++;
  657.             }
  658.         }
  659.         if (count($a) % 2) {
  660.             if ($a[$i] == $x) {
  661.                 $countX++;
  662.             }
  663.         }
  664.         echo "i: $i" . "<br>";
  665.  
  666.         echo "X: $countX, notX: $countO";
  667.  
  668.         while ($countO != $countX) {
  669.             if ($countX > $countO) {
  670.                 if ($a[$i] == $x) {
  671.                     $countX--;
  672.                 } else {
  673.                     $countO++;
  674.                 }
  675.                 $i--;
  676.             } else {
  677.                 if ($a[$i] == $x) {
  678.                     $countX++;
  679.                 } else {
  680.                     $countO--;
  681.                 }
  682.                 $i++;
  683.             }
  684.         }
  685.         echo "<br> X: $countX, notX: $countO <br>";
  686.         var_dump($i + 1);
  687.  
  688.     }
  689.  
  690.     public function giraffe()
  691.     {
  692. //$a = [1,5,4,9,8,7,12,13,14];//dodaj nulu i dodaj izmedju neki broj
  693.         $a = [3, 5, 4, 9, 8, 7, 12, 13, 14];
  694.         $a = [2, 3, 4, 5, 6, 1];
  695.         $a = [2, 4, 1, 6, 5, 9, 7];
  696.         $a = [2, 1, 6, 4, 3, 7];
  697.         asort($a);
  698.         $b = array_keys($a);
  699. //var_dump($b);
  700.         $groups = 0;
  701.         for ($i = 0; $i < count($b); $i++) {
  702.             //var_dump($i);
  703.             $i = $b[$i];
  704.             $groups++;
  705.         }
  706.  
  707.  
  708.         var_dump($groups);
  709.  
  710.     }
  711.  
  712.     public function sortedArrays()
  713.     {
  714.         $a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 19, 40];
  715.         $b = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 11, 14, 16];
  716.         $c = [];
  717.  
  718.         $i = 0;
  719.         $j = 0;
  720.         $k = 0;
  721.         $previous = false;
  722.         while ($i < count($a) && $j < count($b)) {
  723.  
  724.             if ($a[$i] < $b[$j]) {
  725.                 $add = $a[$i];
  726.                 $i++;
  727.             } elseif ($b[$j] < $a[$i]) {
  728.                 $add = $b[$j];
  729.                 $j++;
  730.             } else {
  731.                 $add = $b[$j];
  732.                 $i++;
  733.                 $j++;
  734.             }
  735.             if ($previous !== $add) {
  736.                 $c[$k] = $add;
  737.                 $previous = $c[$k];
  738.                 $k++;
  739.             }
  740.  
  741.         }
  742.  
  743.         for (; $i < count($a); $i++) {
  744.             $c[$k] = $a[$i];
  745.             $k++;
  746.         }
  747.  
  748.         for (; $j < count($b); $j++) {
  749.             $c[$k] = $b[$j];
  750.             $k++;
  751.         }
  752.  
  753.         var_dump($c);
  754.     }
  755.  
  756.     public function highway()
  757.     {
  758.         $A = [29, 50];
  759.         $A = [1, 2, 3, 4];
  760.         $B = [1, 2, 3, 4];
  761.         $C = [1, 2, 3, 4];
  762. //        $A = [29, 29];
  763.         $A = [2];
  764. //        $B = [61, 37];
  765.         //  $B = [61, 61];
  766.         $B = [3];
  767. //        $C = [37, 70];
  768.         //  $C = [70, 70];
  769.         $C = [3];
  770.  
  771.         sort($A);
  772.         sort($B);
  773.         sort($C);
  774.  
  775.         // var_dump($A, $B, $C);
  776.         $total = 0;
  777.  
  778.         $lastJ = 0;
  779.         $lastK = 0;
  780.         for ($i = 0; $i < count($A); $i++) {
  781.             for ($j = $lastJ; $j < count($B); $j++) {
  782.                 if ($B[$j] > $A[$i]) {
  783.                     // var_dump( $B[$j]);
  784.                     $bCombo = count($B) - $j;
  785.                     for ($k = $lastK; $k < count($C); $k++) {
  786.                         echo "<br> $k <br>";
  787.                         if ($C[$k] > $B[$j]) {
  788.  
  789.                             //var_dump($C[$k]);
  790.                             // echo $C[$k];
  791.                             $cCombo = count($C) - $k;
  792.                             $total += $bCombo * $cCombo;
  793.  
  794.                             if ($bCombo * $cCombo > 1000000000 || $total > 1000000000) {
  795.                                 var_dump(-1);
  796.                             }
  797.                             break;
  798.                         }
  799.  
  800.                     }
  801.                     $lastK = $k;
  802.                     echo "lastK " . $lastK;
  803.                     break;
  804.                 }
  805.             }
  806.             $lastJ = $j;
  807.             echo "lastJ " . $lastJ;
  808.         }
  809.         echo " total ";
  810.         var_dump($total);
  811.     }
  812.  
  813.     private function getQuadrant(int $x, int $y)
  814.     {
  815.         if ($x >= 0) {
  816.             if ($y >= 0) {
  817.                 return 1;
  818.             } else {
  819.                 return 4;
  820.             }
  821.         } else {
  822.             if ($y >= 0) {
  823.                 return 2;
  824.             } else {
  825.                 return 3;
  826.             }
  827.         }
  828.     }
  829.  
  830.     public function bob()
  831.     {
  832.         $array = [
  833.             new Obj(-1, -2),
  834.             new Obj(1, 2),
  835.             new Obj(2, 4),
  836.             new Obj(-3, 2),
  837.             new Obj(2, -2),
  838.             new Obj(3, 6),
  839.             new Obj(-40, -80)
  840.         ];
  841.         //  $array = [new Obj(-1,-2)];
  842.  
  843.         $rays = [];
  844.         foreach ($array as $statue) {
  845.             $q = $this->getQuadrant($statue->x, $statue->y);
  846.             $ratio = $statue->x / $statue->y;
  847.             $rays[$q][$ratio] = true;
  848.         }
  849.  
  850.         $count = 0;
  851.         foreach ($rays as $quadrant) {
  852.             $count += count($quadrant);
  853.         }
  854.  
  855.         echo $count;
  856.     }
  857.  
  858.  
  859.     public function sum()
  860.     {
  861.         $A = [3, 5, 1];
  862.  
  863.         $stepen = 1;
  864.         $number = 0;
  865.         foreach ($A as $num) {
  866.             $number += $num * $stepen;
  867.             $stepen *= 10;
  868.         }
  869.         var_dump($number);
  870.  
  871.         $number *= 17;
  872.  
  873.         $result = 0;
  874.         while ($number > 0) {
  875.             $result += $number % 10;
  876.             $number = (int)($number / 10);
  877.         }
  878.  
  879.  
  880.         var_dump($result);
  881.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement