Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
2 Ы: посчитал я для тебя (+):
Отправлено
argus98 (81.22.205.230) 03 ноября 2011, г. 13:15
1. Плавучка
B[n+1] = B[n] + (A[n] - B[n])*3/16
2. Целочисленное с добавлением мл.байта
c[n+1] = c[n] + целое((256*A[n] - c[n])*3/16)
C[n] = округление(c[n]/256)
3. Просто целочисленное
D[n+1] = D[n] + целое((A[n] - D[n])*3/16)
Результаты при начальных B = C = D = 1000
A = xxxx,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1010,1000,1010,1010,1010
B = 1000,1000,1000,1001,1001,1002,1002,1003,1004,1004,1005,1006,1007,1006,1006,1007,1008
C = 1000,1000,1000,1001,1001,1002,1002,1003,1004,1004,1005,1006,1007,1006,1006,1007,1008
D = 1000,1000,1000,1000,1000,1000,1000,1001,1002,1003,1004,1005,1005,1004,1005,1005,1005
То же при начальных B = C = D = 0
A = x,1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1010,1000,1010,1010,1010
B = 0, 188, 340, 464, 565, 647, 715, 769, 814, 850, 880, 904, 924, 938, 952, 963, 972
C = 0, 188, 340, 464, 565, 647, 714, 769, 814, 850, 880, 904, 924, 938, 952, 963, 972
D = 0, 187, 339, 463, 564, 646, 713, 767, 812, 848, 878, 902, 922, 936, 949, 960, 969
как видишь B = C
в D, естественно, накапливается ошибка округления
Составить ответ | Вернуться на конференцию
Ответы