组合实现和谜题

Rob*_*Dey 5 python math combinatorics

在此输入图像描述

在图像中找到了这个谜题.根据我的想法,方法的总数应该是多少

2*comb(7,i) for i <- 1 to 7其中comb定义如下.我的方法是否正确?我关心的是我得到的结果而不是下面写的函数.

def comb(N,k): 
    if (k > N) or (N < 0) or (k < 0):
        return 0L
    N,k = map(long,(N,k))
    top = N
    val = 1L
    while (top > (N-k)):
        val *= top
        top -= 1
    n = 1L
    while (n < k+1L):
        val /= n
        n += 1
    return val
Run Code Online (Sandbox Code Playgroud)

不要介意我在短时间内提出太多问题.我很热情.

unu*_*tbu 6

有7个!排列孩子的方法(第一个点有7个选择,第二个点有6个,第三个点有5个,等等)

每个孩子都可以面向内或外.这就像每个位置的额外位.所以乘以2**7.(即每个地点有2个选择).

现在,对于每个订购,如果您旋转圆圈,您将获得"相同"的排序.有7个旋转都产生相同的顺序,因此除以7.

答案是2**7*7!/ 7 = 128*6!= 92160.