$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=$names[$i][1]?> |
=$array[$i-1][1][1]?> |
=$array[$i-1][1][2]?> |
=$array[$i-1][1][3]?> |
=$array[$i-1][1][4]?> |
=$array[$i-1][1][5]?> |
=$array[$i-1][1][6]?> |
=$array[$i-1][1][7]?> |
=$el[$i][1]?> |
x=$names[$i][2]?> |
=$array[$i-1][2][1]?> |
=$array[$i-1][2][2]?> |
=$array[$i-1][2][3]?> |
=$array[$i-1][2][4]?> |
=$array[$i-1][2][5]?> |
=$array[$i-1][2][6]?> |
=$array[$i-1][2][7]?> |
=$el[$i][2]?> |
x=$names[$i][3]?> |
=$array[$i-1][3][1]?> |
=$array[$i-1][3][2]?> |
=$array[$i-1][3][3]?> |
=$array[$i-1][3][4]?> |
=$array[$i-1][3][5]?> |
=$array[$i-1][3][6]?> |
=$array[$i-1][3][7]?> |
=$el[$i][3]?> |
z |
=$array[$i-1][4][1]?> |
=$array[$i-1][4][2]?> |
=$array[$i-1][4][3]?> |
=$array[$i-1][4][4]?> |
=$array[$i-1][4][5]?> |
=$array[$i-1][4][6]?> |
=$array[$i - 1][4][7]?> |
|
Решающая колонка №=$kolonka[$i]?>
Решающая строка №=$stroka[$i]?>
Элемент =$element[$i]?>