Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > время ожидания истекло... ((


Автор: beShur 30.3.2008, 12:28
Добрый день!

не спрашивайте зачем, но вот сел написать скрипт для расчёта комбинаций С - для решения задач по теории вероятностей.

С = n!/m!*(n-m)

по скрипт почему-то не работает ((
через форму ПОСТом передаются значения $n, $m:

Код

$n = $_POST['n'];
$m = $_POST['m'];

function fact($a) {   // импровизированная функция для расчёта факториала
    if ($a > 0) {
        for ($i=1; $i <= $a; $i++) {
            $a = $a*$i;
        }
    } else {
        echo "Аргумент должен быть больше 0";
    }
}

if (empty($n) || empty($m)) {

        $error="Поля  не заполнены";

    } elseif ($n < $m) {

        $error = "Ошибка в значении m или n";
    } else {

        $answer = 1;

        $up = fact($n);

        $down = $fact($m)*($n-$m);
        $answer = $up/$down;
        //echo $answer;

}


что не так?

спасибо!

Автор: Wolf1994 30.3.2008, 12:37
Во первых, функция fact не возвращает результатов - "return $a".
Во-вторых, у Вас создан цикл с ростом точки завершения в арифметической прогрессии - он не может быть завершён. Попробуйте указывать в описании цикла:

Код

$ai=$a;
for ($i=1; $i <= $ai; $i++)
{
 $a = $a*$i;

Автор: beShur 30.3.2008, 13:06
Цитата(Wolf1994 @ 30.3.2008,  12:37)
Во первых, функция fact не возвращает результатов - "return $a".
Во-вторых, у Вас создан цикл с ростом точки завершения в арифметической прогрессии - он не может быть завершён. Попробуйте указывать в описании цикла:

Код

$ai=$a;
for ($i=1; $i <= $ai; $i++)
{
 $a = $a*$i;

спасибо! всё заработало!))

получилось вот так _http://beshur.net/tmp/teorver.php, если кому вдруг нужно/интересно

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)