Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 7, 2007 07:05:52

OlDer
От:
Зарегистрирован: 2006-07-19
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

Мне нужно извлечь квадратный корень из числа без использования модуля math.

Существует ли алгоритм который использует только умножение, сложение и вычитание? Т.к. хотелось бы использовать его с вот этим модулем: http://www.pythoncraft.com/Decimal.py А там другие операции не реализованы ;)

Нужно это для вот такого устройства: http://www.telit.com/en/products/python.php
Там python 1.5.2 и нету почти ничего из стандартной библиотеки.



Офлайн

#2 Ноя. 7, 2007 09:16:07

multik
От:
Зарегистрирован: 2007-10-16
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

первое что приходит на ум – разложить в ряд тэйлора до требуемой точности. если я не ошибаюсь, так практически везде и сделано.

в принципе, еще можно дихотомию пускать. сходимость логарифмическая. но все-таки это уже из разряда извращений.



Офлайн

#3 Ноя. 7, 2007 11:42:34

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

тута интересно :)
И тут
И тута почитайте
Ага, а вот тут подробно написано, правда на С.

Отредактировано (Ноя. 7, 2007 11:48:44)

Офлайн

#4 Ноя. 7, 2007 13:53:58

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

Угу. Тот код, который на gamedev, AFAIR, id Software использовал :)



Офлайн

#5 Ноя. 7, 2007 13:55:10

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

В питоне 2.5 в модуле decimal - есть вычисление корня.
На питоне - 100 строк, поэтому даю ссылку на модуль.
Функция называется sqrt =)
http://svn.python.org/view/python/trunk/Lib/decimal.py?rev=58550&view=markup
Я думаю ее надо немного подправить - чтоб совместить с 1.5.2.



Офлайн

#6 Ноя. 7, 2007 14:03:03

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

хотя… я бы поступил по другому.
перевел бы decimal во float, и сделал
pow(x, 0.5)
это побыстрее будет чем столбиком или по ньютону считать ;)

p.s. pow - встроенная в 1.5.2 питон функция



Отредактировано (Ноя. 7, 2007 14:05:19)

Офлайн

#7 Ноя. 9, 2007 06:14:17

OlDer
От:
Зарегистрирован: 2006-07-19
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

shiza
перевел бы decimal во float, и сделал
К сожалению, там нету float…



Офлайн

#8 Ноя. 14, 2007 11:05:09

setoy
От:
Зарегистрирован: 2006-07-20
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Квадратный корень на голом python без модуля math

Я работал на телитских модули год назад. По моему встроений интерпретатор весьма бесполезней, недомыслие какое-то :) По моему лучше тебе будет сделать все математики,низкоуровневых и time-critical операций на внешний контролер, ползую только файловая система… но сделать надеждной протокол для связь по UART-a тоже невозможно, потому что телитский питон будет считать простой XOR каждого 64-байтово пакета для какие там 0.5-0.6 секунд:) для CRC :)

Если нет выбора и если обхват аргумента позволяет, лучше всего будет запихать все в словарь :)

_sqrt={1:1,2:1,4:2…..}



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version