Важная информация

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 30

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

  1. #1
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Квадратный корень

    В эл.журнале Bugs #01 наткнулся на сабжевую статью: http://www.zxpress.ru/article.php?id=1819&skip=1

    Вот одна из процедур которая меня заинтересовала:
    4. Неявное табличное вычисление. ( Осторожно - взрыв мозгов ! )

    LD A,H ; 4 : 1
    CP 16 ; 7 : 2
    JR NC,M1 ; 12/7: 2
    OR 128 ; 7 : 2
    LD H,A ; 4 : 1
    LD A,(HL) ; 7 : 1
    RET ; 10 : 1
    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
    ----------------------
    17 байт.

    Пpи HL = от 0 до 4095, Вpемя = 46 тактов.
    Пpи HL = от 4096 до 65535, Вpемя = 62 такта.

    Pазмеp таблицы 5120 . ( адрес в памяти 32768 )
    Таблица состоит:
    0000-4095 - ответы для HL от 0-4095
    4096-4351 - интерполирование диапазона 4096-19199
    4352-4607 - интерполирование диапазона 19200-33791
    4608-4863 - интерполирование диапазона 33792-34815
    4864-5119 - интерполирование диапазона 34816-65535

    Почему именно так - можете и не спрашивать.
    Дополнительная 256-байтная таблица с адреса 32512.
    Состав:
    DS 75 ,144
    DS 57 ,145
    DS 4 ,146
    DS 120,147

    ===== НУ, ЧТО - БАШНЮ ОТОРВАЛО ??? =====

    Сейчас отпустит, когда расскажу о точности вычисления:

    Абсолютно точно = 50046 чисел. 77%
    Ошибка на -1 = 10321 число. 15%
    Ошибка на +1 = 5199 чисел. 8%

    Ну, что сказать в свое оправдание - надо лучше интерполировать !
    ( Но так впадлу ... да и времени нет совсем ... )
    Вопрос: Кто-нибудь подскажет как сформировать таблицу?
    (первые 4096 байт понятно, а вот остальное?)

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

  3. #2
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    у меня вторая половина сомнения вызывает
    ; ld a,h
    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

    для примера - число #1000
    ld a,#10

    M1: LD L,#10 ; 4 : 1
    LD H,127 ; 7 : 2
    LD H,(HL) ; 7 : 1
    LD l,#10 ; 4 : 1
    ADD #10,(HL); 7 : 1
    ;по идее в таблице должно быть число #30
    ;что по факту - хз
    RET ; 10 : 1[/QUOTE]
    ;а вычислять - наверное умножая числа
    Последний раз редактировалось jerri; 22.03.2012 в 21:16.
    С уважением,
    Jerri / Red Triangle.

  4. #3
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    а вот это непонятно - зачем прибавлять? почему просто не взять?
    Вот и я о том-же думаю.
    Видимо эта часть таблицы так хитро сформирована, что корень получается для большего диапазона чисел чем 256, т.е. значения для целого ряда, но для получения конкретного результата нужно прибавить старшую часть...
    Как это сформировать - ума не приложу %(
    Экперементирую...

  5. #4
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

  6. #5
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    он же пишет что есть погрешность
    +-1 = ерунда.
    К тому-же грит что если хорошо интерполировать то всё будет гут

  7. #6
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а таблицы кстати есть в комплекте?
    С уважением,
    Jerri / Red Triangle.

  8. #7
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    а таблицы кстати есть в комплекте?
    В том то и вопрос как их сформировать, готовых я лично не нашел...

    В самом образе журнала нашлись два файла, оба являются архивами Hrust. Но распаковыватся не хотят.
    Последний раз редактировалось Destr; 22.03.2012 в 23:06.

  9. #8
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    что пишут?
    С уважением,
    Jerri / Red Triangle.

  10. #9
    Veteran Аватар для Destr
    Регистрация
    26.03.2008
    Адрес
    Питкяранта
    Сообщений
    1,804
    Спасибо Благодарностей отдано 
    249
    Спасибо Благодарностей получено 
    113
    Поблагодарили
    87 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    что пишут?
    "Неизвестный формат или ошибка в архиве".

    P.S. Зайди в асю что-ли, а то опять флейм какой-то получается...

  11. #10
    Guru Аватар для jerri
    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,755
    Спасибо Благодарностей отдано 
    261
    Спасибо Благодарностей получено 
    269
    Поблагодарили
    203 сообщений
    Mentioned
    12 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

Ваши права

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