afan 发表于 2010-8-22 23:41:05

回复 15# 水木子


    实力本菜鸟自有有自知之明…… 也不会在P版的技术贴中此“实力”问题… {:face (303):}
说到此题,我也只想到以前曾用过 _ArrayCombinations() ,不必费脑细胞… 无奈于那时测试此函数在大于20位的组合会出错,一直耿耿于怀,也就一直对其无爱。 也不知道现在修正没有~
    现在看到有如此高效的代码出现,更不会鸟它了~

rolaka 发表于 2010-8-23 09:53:59

回复水木子


    实力本菜鸟自有有自知之明…… 也不会在P版的技术贴中此“实力”问题… {:face (30 ...
afan 发表于 2010-8-22 23:41 http://www.autoitx.com/images/common/back.gif

20个...好bt

foboy 发表于 2010-8-27 18:50:30

本帖最后由 foboy 于 2010-8-27 23:55 编辑

爷们也来段代码,是截止到此楼为止运行效率最高的。
在一般性能的笔记本上运行,10个字符的平均处理时间为50毫秒内,15个字符的处理时间为1秒左右。
试了一下20个字符,27秒。
在台式机上,10个字符的处理时间为21毫秒左右,15个字符的时间是660毫秒,20个符没测试。$aaa = "1234567890"
$string = StringRegExp($aaa, '\V', 3)
$string_num = UBound($string)
$result = ""
$pretime = TimerInit()
test($string, $string_num, 0, 0, "")
ConsoleWrite($result)
ConsoleWrite(TimerDiff($pretime))
Func test($_string, $_lenth, $_i, $_begin, $_sub_str)
        For $i = $_i + StringLen($_sub_str) To $_lenth - 1
                $_the_string = $_sub_str & $_string[$i]
                $result &= $_the_string & @CRLF
                test($_string, $_lenth, $_i, $i, $_the_string)
                $_i += 1
        Next
EndFunc   ;==>test

menfan1 发表于 2010-8-28 11:48:33

呵呵差距啊应该好好学习一下。。
页: 1 [2]
查看完整版本: 枚举字符串中的所有字符组合