我正在尝试创建一个python程序,它生成n-1
个数字长度为L
的所有组合:
我尝试使用itertools
,但无济于事。我试图使它在我的终端中给它参数5 3
时产生上面的输出。我正在使用python3。解释会很棒。这是我的代码。
import sys
import itertools
def comb(A,n,k,p,lo):
stuff = [A, n, k,p,lo]
return itertools.combinations(stuff, len(stuff)
if __name__ == "__main__":
d = len(sys.argv)>3
n = int(sys.argv[1])
k = int(sys.argv[2])
A = []
for i in range(k):
A.append(0)
if d: print("n:",n,"k:",k)
comb(A,n,k,0,0)
答案 0 :(得分:0)
strncpy(temp->now.lastname, f, sizeof(temp->now.lastname));
temp->now.score = s;
编辑:按指出来完成输入
答案 1 :(得分:0)
import sys
from itertools import combinations
if __name__ == "__main__":
d = len(sys.argv)>3
n = int(sys.argv[1])
k = int(sys.argv[2])
A = []
for i in range(n):
A.append(i)
if d:
print("n:",n," k:",k)
val = combinations(A, k)
for i in val:
print(i)
你不需要辅助功能我不认为
答案 2 :(得分:0)
这应该与python 3一起运行:
import sys
import itertools
def printArray(inputArray):
print('[', str(inputArray)[1:-1], ']')
def comb(arr, r):
output = itertools.combinations(arr, r)
for x in output:
printArray(x)
if __name__ == "__main__":
arr = range(int(sys.argv[1]))
r = int(sys.argv[2])
comb(arr, r)
只需使用:python3 test.py 5 3
输出是:
[ 0, 1, 2 ]
[ 0, 1, 3 ]
[ 0, 1, 4 ]
[ 0, 2, 3 ]
[ 0, 2, 4 ]
[ 0, 3, 4 ]
[ 1, 2, 3 ]
[ 1, 2, 4 ]
[ 1, 3, 4 ]
[ 2, 3, 4 ]