$val) { if ($val >= 0) unset($array[$key]); } $max_key = array_search(min($array), $array); return $max_key; } function get_min ($array) { foreach ($array as $key => $val) { if ($val <= 0) unset($array[$key]); } $min_key = array_search(min($array), $array); return $min_key; } function stroka_name ($num) { switch ($num) { case 1; $out = 's1'; break; case 2; $out = 's2'; break; case 3; $out = 's3'; break; } return $out; } function kolonka_name ($num) { switch ($num) { case 2; $out = 'x1'; break; case 3; $out = 'x2'; break; case 4; $out = 'x3'; break; case 5; $out = 's1'; break; case 6; $out = 's2'; break; case 7; $out = 's3'; break; } echo $out; return $out; } } $good = true; if (!preg_match("|^[0-9\.]+$|", $_POST['x1'][0])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x1'][1])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x1'][2])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x1'][3])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x2'][0])) $good = false; if (!preg_match("|^[0-9\.,]+$|", $_POST['x2'][1])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x2'][2])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x2'][3])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x3'][0])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x3'][1])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x3'][2])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['x3'][3])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['b'][0])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['b'][1])) $good = false; if (!preg_match("|^[0-9\.]+$|", $_POST['b'][2])) $good = false; if ($good == true) { for ($k = 0; $k < 4; $k++) { if ($k < 3) $array[0][$k + 1][1] = $_POST['b'][$k]; else $array[0][$k + 1][1] = 0; $array[0][$k + 1][2] = $_POST['x1'][$k]; $array[0][$k + 1][3] = $_POST['x2'][$k]; $array[0][$k + 1][4] = $_POST['x3'][$k]; if ($k == 3) { $array[0][$k + 1][2] = $array[0][$k + 1][2] * (-1); $array[0][$k + 1][3] = $array[0][$k + 1][3] * (-1); $array[0][$k + 1][4] = $array[0][$k + 1][4] * (-1); } /* S */ if ($k == 0) $array[0][$k + 1][5] = 1; else $array[0][$k + 1][5] = 0; if ($k == 1) $array[0][$k + 1][6] = 1; else $array[0][$k + 1][6] = 0; if ($k == 2) $array[0][$k + 1][7] = 1; else $array[0][$k + 1][7] = 0; } $names[1][1] = "1"; $names[1][2] = "2"; $names[1][3] = "2"; $simplex = new simplex(); $flag = true; for ($i = 1; $i < 60; $i++) { if ($_POST['where'] == 'min') { if ($array[$i - 1][4][2] >= 0 && $array[$i - 1][4][3] >= 0 && $array[$i - 1][4][4] >= 0) { echo "COOOOL!!!"; $flag = false; } } else { if ($array[$i - 1][4][2] >= 0 && $array[$i - 1][4][3] >= 0 && $array[$i - 1][4][4] >= 0) { echo "COOOOL!!!"; $flag = false; } } if ($flag) { /* Находим номер решающего столюца */ $kolonka[$i] = $simplex->get_max($array[$i - 1][4]); /* Находим номер решающего столюца */ /* Рассчитываем значение елементов L */ for ($k = 1; $k < 4; $k++) { if ($array[$i - 1][$k][$kolonka[$i]] > 0) { $el[$i][$k] = round($array[$i - 1][$k][1] / $array[$i - 1][$k][$kolonka[$i]], 4); } } /* Рассчитываем значение елементов L */ /* Находим номер решающей строки */ $stroka[$i] = $simplex->get_min($el[$i]); /* Находим номер решающей строки */ /* Узнаем значение елемента */ $element[$i] = $array[$i - 1][$stroka[$i]][$kolonka[$i]]; /* Узнаем значение елемента */ /* Составляем названия строк */ /* Составляем названия строк */ //echo "Решаюащя колонка №".$kolonka[$i]."
Решающая строка №".$stroka[$i]."
Елемент - ".$element[$i]; /* Заполняем следующую решающую строку */ for ($k = 1; $k < 8; $k++) { $array[$i][$stroka[$i]][$k] = round($array[$i - 1][$stroka[$i]][$k] / $element[$i], 4); } /* Заполняем следующую решающую строку */ /* Заполняем оставшиеся три строки */ for ($z = 1; $z < 5; $z++) { if ($z == $stroka[$i]) continue; for ($k = 1; $k < 8; $k++) { $array[$i][$z][$k] = round($array[$i - 1][$z][$k] - ($array[$i - 1][$z][$kolonka[$i]] * $array[$i][$stroka[$i]][$k]), 4); } } ksort($array[$i]); /* Заполняем оставшиеся три строки */ //echo "
";
		//print_r($array[$i]);
		//echo "
"; } ?>
Баз. зм. Значение х1 х2 х3 s1 s2 s3 L
x
x
x
z  
Решающая колонка №
Решающая строка №
Элемент




Х1 Х2 Х3 Знак b


Z(x) X1 X2 X3