Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得n(n-1)(n-2)/6的结果_Python_Algorithm - Fatal编程技术网

Python 如何获得n(n-1)(n-2)/6的结果

Python 如何获得n(n-1)(n-2)/6的结果,python,algorithm,Python,Algorithm,在我的Python书中,这个问题要求在运行以下代码后证明x的值: x = 0 for i in range(n): for j in range(i+1, n): for k in range(j+1, n): x += 1 我能看到的是: i = 0; j=1; k=2: from 2 to n, x+=1, (n-2) times 1 i = 1; j=2; k=3: from 3 to n, x+=1, (n-3) times

在我的Python书中,这个问题要求在运行以下代码后证明
x
的值:

x = 0
for i in range(n):
    for j in range(i+1, n):
        for k in range(j+1, n):
            x += 1
我能看到的是:

i = 0;  j=1;  k=2:  from 2 to n, x+=1, (n-2) times 1
i = 1;  j=2;  k=3:  from 3 to n, x+=1, (n-3) times 1
...
i=n-3;  j=n-2; k=n-1: from n-1 to n, x+=1, just 1
i=n-2;  j=n-1; k=n doesn't add 1
因此,
x
似乎是(n-2)+(n-3)+…+系列的总和1.
我不知道如何找到
n(n-1)(n-2)/6
的答案

只需将循环的
写成sigma:
S=sum{i=1}^n sum{j=i+1}^n sum{k=j+1}^n(1)

尝试将总和从内部扩展到外部: [代码>S>S>S>S>S>S>S>S>S>S>S>S=及及[[[[[音]人士人士{{{{{{{{{{{{{{i{{{{{{{{{{{{{i{{{{i{{i{i{i{i{i{i{1}{1}{n n(n-i)n(n-i)n-i))-(,(,(,(,(i+1+1+1+1+1+1++++1+1++2+++2+++++++++++++++++1++++++1)及[[[[[[1]人士人士人士人士人士人士人士]]1]1]1]]]及[[[[[[1]]]]]]]]]]]]]]及{{{{{{{{{{求和{i=1}^n(i^2/2+i/2-n*i)

如果打开此总和并对其进行简化(很简单),您将得到
S=n(n-1)(n-2)/6

查看此结果的一种方法是,您有
n
值和三个嵌套循环,它们被构造为具有非重叠范围。因此,可能的迭代次数等于从
n
项或=
n!中选择三个唯一值的方法数/(3!(n-3)!
=
n(n-1)(n-2)/3*2*1
=
n(n-1)(n-2)/6

谢谢pjs,这绝对是一种明智的查看方式!