【发布时间】:2018-04-19 13:27:20
【问题描述】:
我目前正在创建一个蛮力算法,并且想知道是否有一种方法可以优化我的程序以更快地运行并花费更少的时间来生成所有可能的组合。
import time
# 10.598227977752686 Seconds for 2 characters
# 488.21563148498535 Seconds for 3 characters
start = time.time()
chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '1234567890'
for char1 in chars:
for char2 in chars:
for char3 in chars:
print(char1 + char2 + char3)
end = time.time()
print(end - start)
有没有办法优化这个?
【问题讨论】:
-
@Zinki:应该是
itertools.product -
您在模块中传递的时间是由于打印功能。删除它可以在不到 0.1 秒的时间内运行 3 个字符。
-
正如@Jean-FrançoisFabre 所指出的,大部分时间都花在了打印上。因此,您的问题的答案取决于您对数据的处理方式。你可能经常分解一些微积分(比如 char1 + char2)
标签: python optimization brute-force