litaoye 发表于 2009-3-12 16:34:43

原帖由 无心人 于 2009-3-12 16:16 发表 http://bbs.emath.ac.cn/images/common/back.gif
:lol

允许用汇编么?

呵呵

呵呵!有不少通过了的用的就包括了汇编,有用BSR指令的,不过我觉得可能整体上有更好的方法,所以还没有考虑这么细节的,
况且我也不会用汇编!

无心人 发表于 2009-3-12 16:38:23

你考虑20#的方法

可以加入全部的10^n和2^m

litaoye 发表于 2009-3-12 16:39:41

回复 20# 无心人 的帖子

恩,差不多就是这个意思!分块之后可以直接用块与块进行运算,可以提高一些速度,
不过有些包含10^n的块,则还需要两两进行运算,这部分优化没有想的太清楚!
另外同一个块内部,似乎只能老老实实的挨个算!有时候这部分数据量可能也挺大的。
所以整个效率提升,不是非常显著!

litaoye 发表于 2009-3-12 16:41:43

现在基本上就是加入了2^m和10^n进行运算的,比原来提高了5-6倍吧!不过感觉似乎还有很大的提高空间!

无心人 发表于 2009-3-12 16:43:35

加入了后,还是0.6秒?

无心人 发表于 2009-3-12 16:44:02

现在就是同数量级的运算无法优化吧?

litaoye 发表于 2009-3-12 16:48:03

回复 26# 无心人 的帖子

是呀,加入后0.6左右吧!同数量级的优化确实存在比较大的问题,另外测试的时候可能给都弄不好都是同数量级的!
呵呵!

mathe 发表于 2009-3-12 16:56:04

对于这5000个数,通常我们只需要查看它们最高32比特就可以,除非两个数的32比特值的异或结果小于10,我们才需要继续查看其它部分的值之间的异或。

litaoye 发表于 2009-3-12 16:56:39

我曾用递归的方法试过,比如同数量级的相当于把最高位的1去掉,然后剩下又是数量级上有差别的,
不过内存使用超了!另外速度提高也不是很明显!

无心人 发表于 2009-3-12 17:23:22

或许
只能是bsr了

0.1的代码在哪里?
页: 1 2 [3] 4 5 6 7 8 9 10 11 12
查看完整版本: 关于一个运算优化的问题