![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
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 |
Ищите
![]() |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
Так, задачка решена С оставшейся дробной степенью мы поступаем следующим образом. 1. Домножаем еще на 2/2 до тех пор пока она не станет больше 1 2. 0.2*Ln(X) * 2/2 * 2/2 * 2/2 = 1.6 * Ln(X) / 8 = Ln(X) / 8 + 0.6 * Ln(X) /8 небольшое уточнение, естественно раскладывать в п.2 нам надо на целую и дробную часть, а не на 1*Ln(X) и 0.6 * Ln(X) Т.е. мы должны получить что-то вида C/8 + D/8, где С - целое, а D - дробное. 3. Левую часть мы уже можем считать. Для этого возводим e в полученную степень (С) и извлекаем квадратный корень, столько раз, сколько домножали на 2/2 (в нашем примере 3 раза) 4. Правую прогоняем через п.1. 5. Потом считаем произведение полученного ряда. 6. И так до тех пор пока не достигнем приемлимой точности.
Если вы не бездарный - то придумаете/вспомните формулу. Если вы не лентяй - то реализуете по предложенному алгоритму. Но вы не делаете ни того, ни другого, а просите других решить это за вас. Все просто и выводы каждый сделает для себя. |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
Я собственно не просил решать это за меня, а просил подсказать готовое решение, используемое другими программистами в этом случае. Вряд ли каждый будет делать таким способом. Я просто думал, что если кто знает, как это уже сделано, то может выложить. Возможно, этот алгоритм единственный, и по-другому нельзя. Но вполне возможно, есть более простой и эффективный способ это сделать.
В первом случае в нем была ошибка, поэтому я и не торопился сразу бежать кодировать, пока автор не убедился в правильности предложенной вещи Это сообщение отредактировал(а) motorway - 26.9.2009, 22:45 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
NLspieler |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 619 Регистрация: 13.10.2008 Где: Берлин Репутация: 16 Всего: 19 |
Попробовал алгоритм, аноличный алгоритму, который предложил
товарищ Simpliest, оказалось, что точность недопустимо низкая, а время выполнения необычайно высокое. Поискал в интернете, есть алгоритм извлечения корня столбиком. Возможно, функции sqrt, pow, извлекают корени подобным образом. Если не удастся придумать что то более продуктивное, то попробую реализовать стобиковый алгоритм. |
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
По идее, те, кто делал PHP, должны знать. Только у кого конкретно это спросить?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
motorway, ты понял, что сказал?
|
|||
|
||||
motorway |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: 1 Всего: 0 |
А что я такого сказал? Кто-то из разработчиков делал эти функции, поэтому он должен знать, как решается мой вопрос. Но кто их делал, я не знаю
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |