Algorithm 使用3个可能值生成长度为n的组合字符串

Algorithm 使用3个可能值生成长度为n的组合字符串,algorithm,Algorithm,我有三种可能的价值观:战争(w)、购买(b)和出售(s)。我必须生成一个长度为N的组合字符串 假设N为2,总组合为3x3=9 w,w w,b w,s b,w b,b b,s s,w s,b s,s 同样,我必须生成一个大小等于N.2的(w,s,b)组合字符串。你可以用递归函数来实现。这里有一个python示例,但您可以用自己喜欢的语言轻松地重写它 def x(partial): if len(partial) == N: handle_solution(partial) for

我有三种可能的价值观:战争(w)、购买(b)和出售(s)。我必须生成一个长度为N的组合字符串

假设N为2,总组合为3x3=9

w,w
w,b
w,s
b,w
b,b
b,s
s,w
s,b
s,s

同样,我必须生成一个大小等于N.2的(w,s,b)组合字符串。你可以用递归函数来实现。这里有一个python示例,但您可以用自己喜欢的语言轻松地重写它

def x(partial):
  if len(partial) == N:
    handle_solution(partial)
  for c in ('w', 'b', 's'):
    x(partial + c)

无论是语言还是实现,这都会很慢。解决方案的数量为3^N,因此即使对于相对较小的N值,这也需要很长的时间。您应该回到原来的问题,找出一种解决方法,而不必经过所有的组合。

您的问题到底是什么?所以您需要创建一个排列?或者所有的排列?或者你真的是指组合?(对于置换,每个值的数目是固定的,对于组合则不是固定的。)