![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Каким образом в php можно возводить в степень большие целые числа и складывать их?
![]() Например, нужно вычислить p^m1+q^m2+r^m3, где все числа достаточно большие, так что приходится использовать представление в виде строк. На входе 3 числа и 3 степени, на выходе результат вычисления. Это сообщение отредактировал(а) motorway - 5.11.2008, 21:51 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
ekianu |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 7.11.2006 Репутация: нет Всего: нет |
если bcmath медлить, то используй gmp. |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
респект
![]() -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
а как лучше всего проверять, является ли корень из большого числа целым числом?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Поискать в строковом представлении букву E или символ '.'
Imho, bcmath все равно работает со строками... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
а как извлечь корень нормально из большого числа?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
NLspieler |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Недавно писал библиотеку функций, для моей решалки уравнений. Как раз есть то, что тебе нужно!
Что значит нормальное извлечение корня? |
||||||
|
|||||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Как извлечь корень произвольной степени из большого числа с помощью BCMath? Напр., корень 5-й степени.
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
NLspieler |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
|
||||
|
|||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
у меня такая штука выводит 1. В мануале был коммент, что эта функция не может исп. с дробными степенями :(
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Да, проверил, и правда не работает.
Но отчаиватся не стоит, есть функция bcsqrt, которая извлекает квадратный корень. Если хорошенько напрячь мозг, то можно найти алгоритм нахождения любого натурального корня, используя только эту функцию. Если придумаю, запощу здесь результат. |
|||
|
||||
NewDima |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 10 Всего: 12 |
NLspieler, на сколько я знаю, это не возможно сделать
|
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Подбором, собсно... с заданной точностью.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Корень n-й степени из числа a, где e = 2.718... (Число Эйлера), а Ln() - натуральный логарифм.
Форумулы расчета натурального логарифма можете найти сами в сети ![]() Добавлено через 1 минуту и 59 секунд А можете воспользоваться таблицами. Добавлено через 4 минуты и 40 секунд Вот кстати, готовое решение для Ln() http://ua2.php.net/manual/en/function.bcpow.php первый же пример. |
|||
|
||||
NLspieler |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Если бы была бы возможность возводить bc числа в дробную степень, то тогда было бы вполне достатоно использовать формулу
Но так как, bcpow не может возводить число в дробную степень, поэтому нужно искать другое решение. Подбором, это как то не спортивно, да и времени займет недопустимо много. Извлекать корни 2, 4, 8, 16, 32 и т.д. при помощи bcsqrt не составляет труда. Если удастся найти натуральное число x
то тогда задача будет решена. Вопрос в том, существует ли подходящее число для любого натурального s. Если нет, то задача и вправду не разрешимая таким методом. Это сообщение отредактировал(а) NLspieler - 25.9.2009, 17:21 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |