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

时间:2016-04-06 05:35:38

标签: 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的组合字符串(w,s,b).2 <= N <= 8000

1 个答案:

答案 0 :(得分:0)

您可以使用递归函数执行此操作。这是python中的一个例子,但你可以用你最喜欢的语言轻松地重写它。

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

无论语言或实现如何,这都会很慢。解决方案的数量是3 ^ N,因此即使对于相对较小的N值,这将花费很长时间。你应该回到原来的问题,找出解决问题的方法,而无需经过所有的组合。