Вычисление целочисленного log10(x) и √

Тема в разделе "WASM.A&O", создана пользователем AssemblerIA64, 17 ноя 2008.

  1. AssemblerIA64

    AssemblerIA64 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2007
    Сообщения:
    160
    Пишу процедурки для работы с длинными числами. Встала проблема вычисления этих двух функций. Посоветуйте, пожалуйста, какой алгоритм лучше использовать? Спасибо!
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    для корня можно посмотреть http://algolist.manual.ru/maths/count_fast/intsqrt.php
    для логарифма - не знаю на сколько неоптимально перебирать степени десятки от 0 до тех пор пока 10^n не станет больше value...
     
  3. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    переведи в десятичную систему и посчитай количество цифр :)
     
  4. nobodyzzz

    nobodyzzz New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2005
    Сообщения:
    475
    reverser
    наверное посчитать кол-во цифр в 2-чном представлении и разделить на 4 будет быстрее =)))
     
  5. AssemblerIA64

    AssemblerIA64 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2007
    Сообщения:
    160
    Я вычисляю значение корня из (16 + 2^32 + 2^64) и по алгоритму 4 из http://algolist.manual.ru/maths/count_fast/intsqrt.php у меня получается 139252650, а должно 4294967296. Кстати, значение div, вычисленное последним равно 4027404962.
     
  6. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Ну, корень можно и в столбик посчитать...