您的位置:首页 > 其它

给定一个非常长的字节序列(假设有十亿或万亿),如何高效的统计1的个数

2010-12-24 16:17 211 查看
第一种方法是:计算每个输入单元中为1的位数,然后将它们相加;这个如何实现呢?
(1):使用类似( b &= (b-1) )对为1的位数进行迭代。
(2):查表(例如查询一个

元的表)。
第二种方法是:计算输入单元中每个输入单元的个数,然后将该个数乘以相应输入单元中为1的位数,最后对各个输入单元求总和。
再举个例子:
20世纪60年代早期,Vic Berecz发现Sikorsky飞机的模拟程序的大部分运行时间都消耗在计算三角函数上。进一步的观察表明,只有在角度为5度的整数倍时才计算这些函数。他应该如何减少时间?
答:使用几个72元(360/5)的表格来取代函数的计算,这样可以使该程序在IBM 7090上的运行时间从半小时降至1分钟。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐