专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VB Dotnet

请高手指教下面这个有关问题的效率最高的算法!

发布时间:2011-06-23 15:56:05 文章来源:www.iduyao.cn 采编人员:星星草
请高手指教下面这个问题的效率最高的算法!?
在VB.net中,从一个double型数组arr[100]中查找满足条件   Abs((a*c)/(b*d))-p <0.00001(误差范围)的四个元素a,b,c,d,其中变量p由文本框输入的值决定。求效率最高的算法。。请高手指教!!!

例如数组中有20,40,30,60,50,100,120共七个数值,p=0.25,则可以有
a=20,b=40,c=30,d=60
a=20,b=40,c=50,d=100
a=30,b=60,c=50,d=100
a=20,b=40,c=60,d=120
而不允许存在
a=20,b=40,c=20,d=40
a=20,b=20,c=30,d=12
之类的组合存在


------解决方案--------------------
如果你的数组是常量,还可以用查表的方式,这样效率就大大提高了,比如100的数组,其实表里只要一万条记录记录这100个数字两两相乘的结果.然后计算时候就省去了了乘法运算了,变成

(p-0.00001)*X
(p+0.00001)*X
然后去查表.再去重复,会快得多,不过如果你的数组是变化的,就不好办了,因为构建这张表就要很多时间了.
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: