User Tag List

Показано с 1 по 10 из 30

Тема: Квадратный корень

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В программе явно глюки. Я обнаружил то же самое, что Destr. К тому же, неверны данные об адресе начала таблицы. При значениях аргумента >4096 регистр H Загружается число 7F, а потом идет считывание из HL. То есть идет считывание по адресам меньшим, чем 32768.

    Еще можно заметить, что если значение аргумента >4096 - То его младший байт вообще не используется. Используется только старший байт. Я распечатал квадраты всех чисел от 0 до FF. В распечатке видно, что при значениях квадрата x>4096, одному и тому же значению старшего байта x соответствует не более двух различных значений sqrt(x). Поэтому и без всякой интерполяции, если брать значение sqrt(x) из таблицы только по старшему байту для x>4096 - то найденное таким образом приближение будет отличаться от истинного sqrt(x) не более чем на единицу. Размер таблицы составит таким образом 4096+256 байт.

    Еще можно вычислять квадратный корень по таблице квадратов целых чисел. Методом двоичного поиска ищется местоположение x в этой таблице - это местоположение и будет искомым sqrt(x). Для двоичного поиска по такой таблице длиной в 256 двухбайтных чисел требуется не более 8 итераций.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •