Demo or Die
#02
31 июля 1999 |
|
Demo-строение - Генератор таблицы квадратов.
__________________________________________ (c) ra!d Генератор таблицы квадратов Действие этого генератора,основано на очень интересной зависимости, математически это выглядит например так: k k-1 X = X + Nk, k k-1 где X и X - квадраты последовательных чисел,на данной и преды дущих итерациях; k -соответственно номер итерации; Nk - число из ряда натуральных нечетных чисел; Думаю что это небольшая таблица, поможет понять сей алгоритм. ┌───┬──┬──┬──┬──┬──- │ X │1 │2 │3 │4 │... ├───┼──┼──┼──┼──┼──- │X^2│1 │4 │9 │16│... ├───┼──┴──┴──┴──┼─── │ N │ 3 5 7 │ └───┴───────────┴──- Hекоторые замечания по поводу данного примера: 1) Данный пример создает таблицу квадратов чисел от 0 до 255; 2) В таблице, квадраты чисел располагаются сверху-вниз, т.е сначала идет квадрат 255, затем квадрат 254 и т.д. (это связанно с спецификой структуры стека). Hедостатком это назвать трудно,скажем так, это просто побочный эффект,который очень легко решается -достаточно инверсировать число,квадрат которого находится,например так: LD A,ЧИСЛО, ;КВАДРАТ КОТОРОГО ;ТРЕБУЕТСЯ HАЙТИ. CPL LD BC,TABL LD H,0 LD L,A ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) 3) Hе забудьте в конце программы перенаправить стек. ;***************************************** ;* GEN_TABL_X^2 * ;* (C) 1999 idea and code by ra!d * ;* code len:16b * ;***************************************** LD SP,TABL+512 LD HL,1 LD D,H LD E,L LD B,#FF LP1 PUSH HL INC DE INC DE ADD HL,DE DJNZ LP1 ;LD SP,nnnn ;RET TABL DEFS 512 P.S. Кстати, я так и не встретил ни в одном математическом справочнике, описание данного метода. __________________________________________
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября