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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2009, 22:47   #1
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию корень произвольной степени из большого числа с помощью BCMath

Как извлечь корень произвольной степени из большого числа с помощью BCMath? Напр., корень 5-й степени.
motorway вне форума Ответить с цитированием
Старый 24.09.2009, 23:55   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от motorway Посмотреть сообщение
Как извлечь корень произвольной степени из большого числа с помощью BCMath? Напр., корень 5-й степени.
В этом расширении, к сожалению, нет такой функции.
Извлекайте преобразованием: http://e-science.ru/math/theory/?t=83
SkyM@n вне форума Ответить с цитированием
Старый 25.09.2009, 15:33   #3
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Не очень понял, про какое преобразование идет речь. Разве корень 5-й степени можно свести к другому?
motorway вне форума Ответить с цитированием
Старый 25.09.2009, 16:05   #4
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

небольшой вопрос: а где вы собственно учились математике ?


корень n-ной степени это возведение в 1/n степень

к примеру, чтобы найти корень десятой степени из числа - нужно это число возвести в степень 0.1

на php:
PHP код:
<?
echo pow(10000000000,0.1);
?>
выведет 10
свободен...
wall66 вне форума Ответить с цитированием
Старый 25.09.2009, 16:52   #5
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Код:
небольшой вопрос: а где вы собственно учились математике ?
Учился я вполне хорошо (в школе - экстерном 9-11 класс, далее в институте), и про корень я знаю. Но ваш пример для такого случая echo pow(2138729732198781282837219382199 8218927392978,0.5);
выведет 4.62464023703E+21 - так что вместо нужного мне результата будет округление. Я же написал, что мне нужны произвольные числа (BC Math).
motorway вне форума Ответить с цитированием
Старый 25.09.2009, 17:00   #6
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

PHP код:
<?
echo sprintf("%.4f",pow(21387297321987812828372193821998218927392978,0.5));
?>
4 - количество знаков после запятой

п.с. а что вам мешает подставить те же значения в аналогичную функцию bcmath ?
свободен...
wall66 вне форума Ответить с цитированием
Старый 25.09.2009, 18:33   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

то есть функция pow даже с большими числами работает? Странно. Подставить мешает то, что функция bcpow не работает с дробными значениями степени.
Что-то 100 знаков после запятой не получается вывести
motorway вне форума Ответить с цитированием
Старый 25.09.2009, 18:46   #8
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

ничего странного, представление типа данных float в памяти для всех функций одинаково, как и работа с ним

значит разработчики php давным давно позабыли о группе функций bcmath

опытным путем установлено ограничение в 40 знаков после запятой, причины этого неизвестны, но скорей всего имеются



на вашем месте я бы не занимался всякими глупостями вроде извлечения корней из чисел, которым объективно неоткуда взяться, да еще и с никому не нужной точностью
есть гораздо более полезные занятия
свободен...
wall66 вне форума Ответить с цитированием
Старый 25.09.2009, 18:50   #9
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

а я думал, что большие целые числа - это уже не float, а в виде строк представление. Мне хватит и нескольких знаков после запятой, просто почему-то там все время нули получаются.
Сами числа большие могут взяться как раз, например, в уравнениях с высокими степенями в теории чисел.
В криптографии их полно также...
motorway вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислит корень из числа? Paul_AG Общие вопросы C/C++ 6 04.04.2009 14:47
C# - корень 3 степени TaTT DoGG Общие вопросы .NET 4 26.09.2008 21:53
Джентльмены, помогите, пжлст. каким оператором высчитать корень 5-ой степени числа? Osi@ Помощь студентам 32 03.10.2007 19:52
как найти корень из числа $Дмитрий Общие вопросы Delphi 7 26.04.2007 13:40