![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Жесть. Вы прикидываетесь? Или не учили математику? Вам подсказать как получить X в степени 2.2? 1. Раскладываем на Х^2 * X^0.2 2. X^2 3. X^0.2 - это корень. 4. Отсюда имеем X^0.2 = e^(1/0.2 * Ln(X)) = e^(5*Ln(X)) 5. Если 5*Ln(X) у нас не целое число - идем пункт 1. 6. Считаем произведение. На пункте 5 мы можем поставить проверку на точность. т.е. после определенной иттерации просто округлить результат до целого. Это сообщение отредактировал(а) Simpliest - 25.9.2009, 17:36 |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
А что можете сказать про такое решение, возможно, неверное (не мое):
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
у pow точность ограничена 14 или 16 знаков для double (точно не помню).
Тебе же надо БОЛЬШИЕ числа ![]() |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
ну да. В общем, если у кого-то будет протестированная 100%-но функция для таких вещей, будет хорошо.
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Simpliest,
замечательно! Если вы разобрались как решить эту ![]() найдите несколько минут, что бы написать соответствующую функцию. Которая должна уметь извлекать корень любой степени из чисел навроде: 2983742634876182736817263928374982374109238098798172837682734682653472534 с точностью до 500 знаков после запятой. Добавлено через 2 минуты и 18 секунд
А зачем тебе такая функция, если не секрет? Нанотехнологии? Но для них даже функции pow вполне достаточно. |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
||||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Иногда эстетическое наслаждение представляет просто выложить функцию на обозрение мирового сообщества
![]() -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Мое эстетическое наслаждение заключается в непотакании бездарным лентяям. Я дал готовый алгоритм, написать функцию дело 15ти минут. |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Simpliest,
Я вот что не могу понять. Почему, сначала формула была такой: Корень = e^((1/n) * Ln(a)), где n - степень корня, а - число, но внезапно стала такой: X^n = e^(1/n * Ln(а)) ? Другой вопрос в том, может ли y*Ln(x) быть целым числом? Если нет, то нужно повторить пунк 1? Но с какими значениями? |
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 56 Всего: 146 |
Мне непонятно почему X^0.2 = e^(1/0.2 * Ln(X)) ? Ты, наверное, хотел сказать корень 5 степени от X равен e^(1/5 * Ln(X)) = e^(0.2 * Ln(X)) ? Но тогда очевидно, что данный алгоритм не будет работать, т.к. n будет всегда дробным. Это сообщение отредактировал(а) sTa1kEr - 25.9.2009, 19:12 |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Ну должен же быть способ, полюбому должен!
|
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
пока что приходят мысли о представлении числа в виде x*10^k, а дальше корень извлекается из x, которое должно быть небольшим, и из 10^k каким-то образом. Но, скорее всего, это 10^k тоже будет большим, так что не знаю...
Это сообщение отредактировал(а) motorway - 25.9.2009, 19:43 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Да, возможно, где-то ошибка ![]() Момент. Добавлено через 6 минут и 40 секунд Так. В приведении формул была ошибка. sTa1kEr, прав. Правильный вид он указал Дальше у нас есть два варианта
Для второго случая надо подумать. |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Я что-то весьма сомневаюсь, что это будет целым числом для каких-то случаев. ln x - иррационально для рационального x. Так что я не бездарный лентяй, а просто реализовывать предложенную функцию, пока она не проверена автором, не хочется. Это сообщение отредактировал(а) motorway - 25.9.2009, 21:43 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
А там не надо сомневаться. Оно практически всегда будет нецелым. Но проведя "надцать" иттераций вы получите приемлимую сходимость. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |