读书人

最大方差阈值法算法c实现解决方案

发布时间: 2012-06-06 16:44:11 作者: rapoo

最大方差阈值法算法c实现
我看的论文提到的算法名字叫最大方差阈值法。我自己用c语言编的时候不会实现了,想请教一下以下内容怎么实现?
A(k)=求和(i从o到k)(i+1)*p[i]
W(k)=求和(i从o到k) p[i]
Q(k)=[C*W(k)-A(k)]^2/W(k)[1-W(k)]
注:上面的求和是那个求和符号,我不会打,i是从0到k的,k是个未知变量。p[i]数组的数据(整型的)已经知道了,一共256个数。最后那个公式中C是个常数已知。现在我要求使得Q(k)达到最大值时的k的值。注意,是求k。
我的思路是,k最大值是到256了,所以前两个函数中我们可以把变量k变成256,那样求得的A(k)和W(k)就是一个有256个元素的数组了,然后利用排序求得Q(k)的最大值时的k值就好了。但是这样,,算法效率就低了,我用的是笨方法,请教各位还有没有别的方法?我是新手,刚学习。谢谢!!!!描述不清楚的话我可以再解释


[解决办法]
排序是不用的。。。你只要一直遍历计算从0到255的每一个值 。。只把最大值的k记下来就行了。。不用256的数组存起来排序。。。。两个临时变量就够了。。一个临时变量就记录最大Q值。。然后另一个临时变量记录对应的K值。。。

读书人网 >C语言

热点推荐