User Tag List

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 30

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

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

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

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,821
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    да тут наверное можно и самому рассчитать
    перемножить да посмотреть
    Пробовал.
    Получается плохо.
    Погрешность +-5.
    Да и неудивительно! Я ведь вообще не представляю как полагается считать эту интерполяцию, поэтому считал наугад...

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

  3. #2

    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,821
    Спасибо Благодарностей отдано 
    273
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    95 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По-ходу в программе глюк.
    M1: LD L,H
    LD H,127
    LD H,(HL)
    LD L,A
    ADD A,(HL)
    RET
    К момену прихода на метку М1, в аккумуляторе находится значение H.
    Ага. Он-же отгружается в L. Потом H дважды меняется и в L кладется A. КОТОРОЕ = БЫВШЕМУ H, И КОТОРОЕ УЖЕ ТАМ!
    К тому-же непонятно зачем заводить четыре таблицы по 256, если в каждую попадаем только при определённом значении H, и следовательно только в один диапазон. Т.е. можно было-бы обойтись одной (это если принимать процедуру как правильную).
    Так что по-ходу что-то тут недописано...

  4. #3

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    есть вероятность пропущенной команды

    M1:
    ld a,l
    LD L,H
    LD H,127
    LD H,(HL)
    LD L,A
    ld a,(hl)
    ; ADD A,(HL)
    RET
    но я хз


    одной обойтись нельзя

    как должна выглядеть таблица извлечения корней от 0 до 255

    0 1 1 1 2 2 2 2 2 3 3 3 3 3 3 3 4
    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

    и тут уже надо смотреть как ты будешь округлять

    кстати для этого у него и ADD A,(HL) чтобы хоть както скомпенсировать преобразование 16 бит в 8 бит (ну я так предпологаю )
    Последний раз редактировалось jerri; 23.03.2012 в 09:21.
    С уважением,
    Jerri / Red Triangle.

  5. #4

    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,286
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    91
    Поблагодарили
    39 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Destr Посмотреть сообщение
    В самом образе журнала нашлись два файла, оба являются архивами Hrust. Но распаковыватся не хотят.
    Вполне себе распаковываются, но там внутри только данные газеты.

  6. #5

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а вот и автор

    Мой E-Mail: devils@ellink.ru


    ---------- Post added at 11:55 ---------- Previous post was at 11:53 ----------

    на основе вот этого можно анализировать

    1. Тоpмоз которого никто не видел !

    LD DE,1 ; 10 : 3
    XOR A ; 4 : 1
    M1: SBC HL,DE ; 15 : 2
    RET C ; 11/5 : 1
    INC DE ; 6 : 1
    INC DE ; 6 : 1
    INC A ; 4 : 1
    JR M1 ; 12 : 2
    ---------------------
    12 байт.

    Мин. вpемя = 14 + 26 = 40 тактов
    Макс.вpемя = 14 + 255 * 48 = 12254 такта.

    Hу, скажем так, - это pаботает основываясь на том, что количес-
    тво ответов с каждым следующим целым ответом возpастает на 2.
    Hаписана мною впеpвые была в 1994 году.
    С уважением,
    Jerri / Red Triangle.

  7. #6

    Регистрация
    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 итераций.

  8. #7

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Barmaley_m, он явно пишет что по адресу #7f00 находится таблица интерполяций где есть адреса 4 таблиц под 4 диапазона
    а расчеты сюда покажешь?

    ---------- Post added at 12:33 ---------- Previous post was at 12:32 ----------

    скорость вычисления какая?
    С уважением,
    Jerri / Red Triangle.

  9. #8
    DimkaM
    Гость

    По умолчанию

    Код:
    M1: LD L,H ; 4 : 1
    LD H,127 ; 7 : 2
    LD H,(HL) ; 7 : 1
    LD L,A ; 4 : 1
    ADD A,(HL); 7 : 1
    RET ; 10 : 1
    Если младший байт не учитывается, а он не учитывается судя по коду и по:
    Код:
    Ошибка на -1 = 10321 число. 15%
    Ошибка на +1 = 5199 чисел. 8%
    то зачем пять таблиц по 256байт?! Достаточно одной на 256 байт.

    ---------- Post added at 13:32 ---------- Previous post was at 13:11 ----------

    Код:
    M1	ld l,h
    	ld h,high tabl2
    	ld a,(hl)
    	ret
    
    генерация второй таблицы:
    n=0......255
    (n+tabl2)=целое(корень(n*256))
    причём первые 16 значений таблицы не используются

    Но, ради взрыва мозга, можно и штаны через голову одеть.

    ---------- Post added at 13:59 ---------- Previous post was at 13:32 ----------

    опс сорри, только щас топик до конца дочитал:
    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Размер таблицы составит таким образом 4096+256 байт.
    Последний раз редактировалось DimkaM; 23.03.2012 в 15:07.

  10. #9

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,866
    Спасибо Благодарностей отдано 
    328
    Спасибо Благодарностей получено 
    310
    Поблагодарили
    234 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    точность наверное
    С уважением,
    Jerri / Red Triangle.

  11. #10
    DimkaM
    Гость

    По умолчанию

    точность точно такая же как в топик старте +\-1 в диапазоне 4096-65535.

    ---------- Post added at 16:06 ---------- Previous post was at 16:01 ----------

    Цитата Сообщение от DimkaM Посмотреть сообщение
    в диапазоне 4096-65535.
    поправочка 4096-10240.

    Остальное точно на 100%(только округляется до целого)

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

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

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

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

Ваши права

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