gpt4 book ai didi

python - 我想让 Euler 24 项目的解决方案更有效率

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:17 26 4
gpt4 key购买 nike

我在 1 分 32 秒内解决了这个问题,这已经很长了。我的解决方案如下。有没有更好的办法解决?

def fill_in(letter, word):
perm = []
for i in xrange(len(word)+1):
the_word = word[0:i] + letter + word[i:]
if the_word[0] == '2':
perm.append(the_word)
return perm

def perm(string):
"Find all permutations of given string"
perm_list = []
for i in string:
if len(perm_list) == 0:
perm_list.append(i)
else:
temp = []
while (len(perm_list) != 0):
temp = temp + fill_in (i, perm_list.pop())
perm_list = temp
return perm_list





j = perm("2013456789")
j.sort()
print j[1000000-725760-1]

最佳答案

对于您当前的算法,无能为力。 itertools.permutations 函数会更快地完成您为您完成的大部分工作,但这并不有趣。问题的关键在于,通过巧妙的数学运算,您可以在不生成所有排列的情况下找出答案。可以在此处找到对此的示例讨论:http://www.mathblog.dk/project-euler-24-millionth-lexicographic-permutation/

关于python - 我想让 Euler 24 项目的解决方案更有效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37172808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com