Advertisement

Python|排列组合练习题求助

阅读量:

Python|排列组合练习题,求助!

题目

将1到9这九个不同的数字依次代入等式A \times 6 = B中进行计算,则其中A是一个八位数且各位上的数字均不相同,并且B也是一个九位数且各位上的数字也不重复。

代码

1、最近我在一个APP上看到了这个题目,并没有找到更高效的方法来解决它,只能通过编程的方式进行暴力破解。
2、我的解题思路如下:首先生成A的所有可能排列;然后生成B的所有可能排列;接着遍历A中的每一个排列;如果某一个排列乘以6后等于B中的某个排列,则记录该数字。
3、我编写了一个基于上述思路的代码,在Jupyter Notebook中运行了近半小时仍然无法得到结果。经过分析认为可能是算法计算量过大或者我的电脑处理能力较弱导致的问题。

复制代码
    from itertools import permutations
    l = list(range(1,10))
    a=list(permutations(l,8))
    b=list(permutations(l,9))
    new_number=[]
    outcomes=[]
    for i in a:
    i=list(i)
    i=[str(n) for n in i]
    k=int(''.join(i))
    new_nu

全部评论 (0)

还没有任何评论哟~