当前位置: 首页> 英语翻译> 正文

combin

  • 作者: 用户投稿
  • 2023-04-14 11:20:02
  • 12

combin是一种数学中的排列组合方法,它可以计算出在n个不同元素中取m个元素的所有可能组合。

例如:有A、B、C三个元素,要求从中取2个元素,那么可能的组合有:AB、AC、BC。

代码示例:

def combin(arr, m):

n = len(arr)

if m >n:

return

# 初始化状态

flag = [0] * n

for i in range(m):

flag[i] = 1

# 核心算法

while True:

print([arr[i] for i in range(n) if flag[i]])

# 找到第一个10组合,将其变成01

pos = -1

for i in range(n-1, -1, -1):

if flag[i] == 1 and flag[i+1] == 0:

pos = i

break

# 如果没有找到,说明已经生成了最后一个组合,退出循环

if pos == -1:

break

# 将pos位置右边的0都变成1,再将pos变成0

flag[pos] = 0

for i in range(pos + 1, n):

flag[i] = 1

if __name__ == '__main__':

arr = ['A', 'B', 'C']

combin(arr, 2)

 
 
  • 3457人参与,13条评论