Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2009, 17:33   #1
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
Печаль Задача на PHP. необходимо вычилсить последовательность

Здраствуйте !!
Мне необходимо вычилсить последовательность:
y = 1 + 2^2 + 3^3 + 4^4 + ... + x^n

Так как PHP начали изучать урок назад, опыта практически нет.
На Delphi вычисление данной последовательности выглядело бы так:

for i:=2 to n do
begin
y := y + round(exp(i*ln(i)));
end;

Попытался оформить также на PHP, и увидел что функции round и exp в PHP также присутствуют, а вот ln нету. Как быть ?)) Код, который сделал написан ниже. Соответсвенно выдаёт ошибку на ln. Поидее должно быть не сложно исправить. Кто сможет, пожалуйста подскажите чем-нибудь.. Благодарю !

Код:
<html>
<body>
<form name="f1" method="post" action="?">
<h3> Пример вычисления y=n!</h3>
Введите n:
<input type="text" name="n" value="" >
<input type="submit" value="factorial" name="submit">
</form>
<?php

$n = $y = isset($_POST['n'])?$_POST['n']:0;
for ($i=2; $i<$n; $i++)
{ $y= $y + round(exp(i*ln(i))); }
print("<p><h4>$y</h4></p>");
?>
</body>
</html>
POPOV вне форума Ответить с цитированием
Старый 25.01.2009, 18:38   #2
Dvijochnyk
Пользователь
 
Регистрация: 23.01.2009
Сообщений: 21
По умолчанию

$step=7;
$a=$x
for ($i=2; $i<=$step; $i++) { $a=$a*$x; }
echo $a;
Dvijochnyk вне форума Ответить с цитированием
Старый 25.01.2009, 18:41   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а вот ln нету.
Натуральный логарифм в php:
Код:
float log(float $arg)
Степенная функция (base ^ exp):
Код:
float pow(float $base, float $exp)
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.01.2009, 19:31   #4
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Цитата:
Сообщение от Dvijochnyk Посмотреть сообщение
$step=7;
$a=$x
for ($i=2; $i<=$step; $i++) { $a=$a*$x; }
echo $a;
Поясните, что вы хотели мне объяснить этим кодом ?

Последний раз редактировалось POPOV; 25.01.2009 в 23:36.
POPOV вне форума Ответить с цитированием
Старый 25.01.2009, 19:52   #5
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Этот код возводит в степень. Используйте функцию pow() для возведения в степень.
Arigato вне форума Ответить с цитированием
Старый 25.01.2009, 23:28   #6
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Я не очень понимаю..
Кому не влом, можете написать код задачи которую я описал ?
y = 1 + 2^2 + 3^3 + 4^4 + ... + x^n

Последний раз редактировалось POPOV; 25.01.2009 в 23:35.
POPOV вне форума Ответить с цитированием
Старый 25.01.2009, 23:37   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

PHP код:
$y 0;
for(
$i=1;$i<=$n;$i++)
 
$y $y pow($i,$i); 
Как-то так. PHP не стоит, поэтому проверить не могу.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 25.01.2009, 23:55   #8
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
Хорошо

Цитата:
Сообщение от Sazary Посмотреть сообщение
PHP код:
$y 0;
for(
$i=1;$i<=$n;$i++)
 
$y $y pow($i,$i); 
Как-то так. PHP не стоит, поэтому проверить не могу.
Всё правильно, тока $y перед циклом равен 1. Огромное спасибо !!
Заодно и показали как функцию pow использовать, а то не врубался никак что значит (base ^ exp).
POPOV вне форума Ответить с цитированием
Старый 26.01.2009, 00:06   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
сё правильно, тока $y перед циклом равен 1
Зачем? У вас уравнение:
y = 1 + 2^2 + 3^3 + 4^4 + ... + x^n
Которое можно переписать как:
y = 1^1 + 2^2 + 3^3 + 4^4 + ... + x^n

Если делать $y = 1, то цикл надо начинать с $i=2
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.01.2009, 01:02   #10
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
Радость

Цитата:
Сообщение от Sazary Посмотреть сообщение
Зачем? У вас уравнение:
y = 1 + 2^2 + 3^3 + 4^4 + ... + x^n
Которое можно переписать как:
y = 1^1 + 2^2 + 3^3 + 4^4 + ... + x^n

Если делать $y = 1, то цикл надо начинать с $i=2
Ой, эт я жёстко тупанул.
Я меня уже есть это на Delphi (помоему вы кстати помогали ) и код просто переделывал на php, а из вашего кода взял только формулу. Вот и получилась байда такая ))

Последний раз редактировалось POPOV; 26.01.2009 в 01:07.
POPOV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание соц. сети - задача PHP? Парсифаль PHP 25 15.05.2010 15:10
PHP: задача на массивы (Un=(n-1)!/2^n) bpystep PHP 1 31.05.2009 11:31
Необходимо дописать скрипт на PHP.... kutt Фриланс 2 01.04.2009 20:50
ЗАДАЧА НА ПОСЛЕДОВАТЕЛЬНОСТЬ ЧИСЕЛ. ПОМОГИТЕ ПОЖАЛУЙСТF НАПИСАТЬ ПРОГРАММУ НА ЯЗЫКЕ ПАСКАЛЬ владимир/к. Помощь студентам 2 21.01.2009 03:03