Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Линейные уравнения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Раздел "Напишите за меня пожалуйста" мне подходит, просто загвозда с цыклом вышла.
Монстр_11111
Отправлено: 06 Ноября, 2009 - 12:45:35
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Вот пишу короче подстановку чисел в значения линейных уравнений , чтоб путем подстановки вычислить значения . Просто делать было нечего,решил чето простое написать , и главное нужное . Но написать "сам" не смог. Поэтому и обращаюсь к вам .
Думаю обьяснять по ниже приведенному коду нечего , там все понятно . Будьте добры укажите на мои ошибки .

PHP:
скопировать код в буфер обмена
  1. <?
  2.  header('Content-type: text/html; charset=utf-8');
  3.  
  4.  
  5. echo '<center><h2>Скрипт уравнялка</h2></center>';
  6. echo '<br>предназначен для решения линейных уравнений путем подстановки случайных данных<br>';
  7.  // x 1 = 2
  8.  // x 2 = 7
  9.  // x 3 = 5
  10.  
  11. // $x_1 + $x_2 + $x_3 = 14
  12. // $x_1 - $x_2 + $x_3 = 10
  13. // $x_1 + $x_2 - $x_3 =  4
  14.  
  15.  
  16.  // Цыкл ( этот цыкл не нужен если выполняется не рендомно )
  17.  // повторений использования операций
  18.  
  19.   $var = 10000;
  20.    $i = 0;
  21.    while(++$i <= $var) {
  22.    
  23.  if ( $x_1 + $x_2 + $x_3 == 14 )
  24.  {
  25.   // Рандом
  26.  
  27.  /*
  28.  $x_1 = rand (0, 7);
  29.  $x_2 = rand (0, 7);
  30.  $x_3 = rand (0, 7);
  31.  */
  32.   // Набросок присвоения значений числу икс 1
  33.  
  34.  $var_x1 = 14;
  35.    $i_x1 = 0;
  36.    while(++$i_x1 <= $var_x1) { $x_1 = $i_x1; echo $x_1.'<br>';
  37.    
  38.    // цыкл 2 го
  39.    
  40.    $var_x2 = 14;
  41.    $i_x2 = 0;
  42.    while(++$i_x2 <= $var_x2) { $x_2 = $i_x2; echo $x_2.'<br>';
  43.    
  44.     $var_x3 = 14;
  45.    $i_x3 = 0;
  46.    while(++$i_x3 <= $var_x3) { $x_3 = $i_x3; echo $x_3.'<br><br>';
  47.    } // цыкл нижнего икса 3 го
  48.    } // цыкл средний икса 2 - го
  49.    } // цыкл верхний икса 1 го
  50.    ////////
  51.  echo 'Решение уравнения найдено <br> ';
  52.  echo 'В данном уравнении икс 1 равен '. $x_1;
  53.  echo '<br>В данном уравнении икс 2 равен '. $x_2;
  54.  echo '<br>В данном уравнении икс 3 равен '. $x_3;  
  55.  echo '<br><br><br><br>';
  56.   echo 'Скрипт закончил свою работу';
  57.  exit;
  58.  }
  59.  
  60.    }
  61.    
  62.  
  63.  echo 'Решение уравнения не найдено <br> ';
  64.  echo 'Скрипт закончил свою работу';
  65.  echo '<br>';
  66.  echo $x_1;
  67.  echo '<br>';
  68.  echo $x_2;
  69.  echo '<br>';
  70.  echo $x_3;
  71.  
  72.  
  73.  
  74.  
  75.  ?>

Неодыкватность кода проявляется в несовсем верном присваивании значения переменным x1, x2, x3. По идее я собиралсяприсваивать каждой из переменных значения приблизительно таким условием:
Икс 1 = 1
И дальше икс 2 даем значения от 1 до 14 пока икс 1 равен 1
Икс 3 же мы даем значения от 1 до 14 каждый раз в зависимости когда икс 2 равен от 1 до 14

Дальше икс1 = 2
Икс два равно ....
И так далее .
Простейшая подстановка значений в переменные , до того пока условие что "икс 1+икс2+икс3 не будет равно 14" будет верно

(Отредактировано автором: 06 Ноября, 2009 - 19:08:58)

 
 Top
Champion Супермодератор
Отправлено: 06 Ноября, 2009 - 12:51:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Монстр_11111 пишет:
set_time_limit(99999);
0 - бесконечное время.
Сначала скажи, в чем проявляется неадекватность скрипта и выдели код в [php]
 
 Top
Ch_chov
Отправлено: 06 Ноября, 2009 - 13:23:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Монстр_11111, а для чего тебе нужны подстановки?
Линейные уравнения решаются через определители. Будет намного быстрей.
 
 Top
Монстр_11111
Отправлено: 06 Ноября, 2009 - 13:28:24
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Подстановки всегда дадут правильный результат)
// Можешь попдробней про определители, не понял чет. Что за определители?
(Добавление)
Определители...
Ну... можно еще матричный метод набросить, метод гаусса,метод крамера .
Но сейчас меня интересует именно подстановка.
 
 Top
Монстр_11111
Отправлено: 06 Ноября, 2009 - 17:40:16
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Такс, никто помочь не смог . Слабаки шоль? )
 
 Top
Nestor
Отправлено: 06 Ноября, 2009 - 18:46:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




Просто нету смысла терять время на метод который не будет работать.Ну будет, а если Х = 9.8676344, ты же не будиш подбирать тысячные, милионные...

У каждого уравнения есть формула по которой его можно легко и точно решить.

А некоторым неинтересно или лень.

Цитата:
Ну... можно еще матричный метод набросить, метод гаусса,метод крамера .

Лутше так и сделать


-----
Aurus CMS
 
 Top
Ch_chov
Отправлено: 06 Ноября, 2009 - 18:48:31
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Подумай, как будет работать твой скрипт, если допустим x_1 будет не целым числом.
 
 Top
Монстр_11111
Отправлено: 06 Ноября, 2009 - 19:02:02
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Понял, уже делаю наброски на метод крамера.

Но вопрос, почему не работает код выше,где его ошибка, в чем?
 
 Top
JROUD
Отправлено: 07 Ноября, 2009 - 01:07:02
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




Монстр_11111, странный подход в решении СЛУ, но если упустить это, то ошибка вашей программы, по крайней мере, в том что проверка должна находится в последнем цикле который прогоняет $i_x3, и вы постоянно обнуляете $i_x1; $i_x2; $i_x3, а зачем? Так ваш цикл просто покрутится 10000 (а зачем вообще внешний цыкл Не понял ) раз безрезультатно. Разумнее использовать три for с проверкой равенства в последнем, ну а вообще лучше матричный метод, если вы пишете универсальный решебник.
 
 Top
Монстр_11111
Отправлено: 07 Ноября, 2009 - 19:36:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 248
Дата рег-ции: Нояб. 2009  


Помог: 0 раз(а)




ГГ написал))
Жроид , спс
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB