来位大神救救孩子吧,文件类Python

来位大神救救孩子吧,文件类Python

问题描述:

 


#-*-encoding=utf-8-*-
import itertools
from itertools import product
 
import  numpy as np
def max_values(n,x):
    max_value=0
    iters=np.arange(0,x,1)
    for i in iters:
        max_value= np.power((n-x+2),i)*(n-x+1)+max_value
    return max_value
 
def min_values(n,x):
    min_value=0
    iters=np.arange(0,x,1)
    for i in iters:
        min_value= np.power((n-x+2),i)*1+min_value
    return min_value
 
def f(n,x):
    a=range(1,30,1)
    b=[]
    while True:
        s=n//x
        y=n%x
        b=b+[y]
        if s==0:
            break
        n=s
    b.reverse()
    b=list(b)
    return  b
 
x=[1,2,3,4]
#a的长度就是我们输入的一个整数值,这里我取list的长度代替这个数
a=list(set(x))
iters=np.arange(1,a.__len__()+1,1)
contianer=list()
discontianer=list()
count=0
for i in iters:
    for j in (np.arange(min_values(a.__len__(),i),max_values(a.__len__(),i)+1,1)):
        b=f(j,a.__len__()-i+2)
        if sum(b)==a.__len__() and (0 not in b):
            contianer.append(tuple(sorted(b)))
            discontianer=list(set(contianer))
print(discontianer)

输出结果

再试一下5的