发布于 2008-01-03 14:41:22
0楼
本文只是提出一种算法而已,仅供参考
二楼的方法当然也是一种好方法,但那只是代码上的技巧(只是优化了内存占用,运算量跟先采集再用循环计算是相当的),而不是算法本身的优劣。即使按二楼的方法进行代码优化,大概也不会比下面的再简洁多少:
+* C, S
LD*>= n, 10
mov* S, A
/* n, A
mov* 0, n
mov* 0, S
not
inc* n
而本文的算法:
+* C, S
-* A, S
mov* S, A
/* 10, A
只需要3个变量,4条语句,不需做采样计数与比较,效率不言自明
而且更重要的区别是算法本身,本文的方法是基于队列平均值,它用相对简洁的代码利用了队列平均值算法的精髓。假如采样时间为100mS,二楼的方法要每隔1S才得到一个有效的平均值,而本算法每100mS就可以得到一个有效的平均值。
本文主要是比较算法本身的优劣,而不是代码,首先要算法好,代码才可能更简洁。
生命存在的方式只有两种:腐烂或燃烧