查找数组的总数

Posted

技术标签:

【中文标题】查找数组的总数【英文标题】:Finding total number of arrays 【发布时间】:2016-10-09 02:46:15 【问题描述】:

我有一个由 N 个整数组成的数组 A。我还有一个整数 K。 我想通过精确地应用以下操作 K 次来找出我可以从数组 A 中获得的不同数组的数量。

在数组中选择一些元素并乘以 -1

数组 A=[2,3,2] 和 k=2 我有四个可能的数组

1.[2,3,2] 2.[-2,-3,2] 3.[-2,3,-2] 4.[2,-3,-2] 这可以计算为 ∑nCr 的总和,其中 r 是 k,k-2,k-4....。

编辑

但是对于正数和负数的组合,假设我们的数组是 A=[-1,2,3] 和 k=3,所有可能的组合都是

1.[1,2,3] 2.[-1,-2,3] 3.[-1,2,-3] 4.[1,-2,-3] 一共是4个数组,一共也是4个数组。 我刚刚提交了我认为应该正确的代码

int main()

   int n,k;
   int arr[11];
   arr[0]=1;
   for (int i=1;i<=10;i++)
   
        arr[i]=arr[i-1]*i;
        //cout<<arr[i]<<" ";
   

    long int ans=0;
    cin>>n>>k;   / n for number of elements and k for operations
    for (int i=0;i<n;i++)
    
        int num;   array element
        cin>>num;
    
    int i=(k%2==0?2:1);
    for(;i<=k;i+=2)
    
        ans=ans+arr[n]/(arr[k]*arr[n-k]);
    
    if(k%2==0)
        ans=arr[n]/(arr[k]*arr[n-k])+1; 
    if(n==1 && k%2==1)
        ans=1;
    cout<<ans;

但它给出了错误的答案。请帮我解决这个问题。

【问题讨论】:

现有标志如何改变您的算法? -2,-3,-2 不正常有什么原因吗? 在您的第二个示例中,2.[-1,-2,3]4.[-1,-2,3] 是重复的,它们应该重复吗? 现在3.[-1,2,-35.[-1,2,-3] 是一样的 @Michi 我的错。已更新。 【参考方案1】:

这迎合了巨大的多维设置。一些蛮力编码,使用并行数组处理语言@​​987654321@ 揭示了以下数量的独特结果,对于 K = 1...10 和 N = 1...14:

┌────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────┬────┬────┬────┬────┐
│    │N=1│N=2│N=3│N=4│N=5│N=6│N=7│N=8│N=9│N=10│N=11│N=12│N=13│N=14│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=1 │1  │2  │3  │4  │5  │6  │7  │8  │9  │10  │11  │12  │13  │14  │
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=2 │1  │2  │4  │7  │11 │16 │22 │29 │37 │46  │56  │67  │79  │92  │
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=3 │1  │2  │4  │8  │15 │26 │42 │64 │93 │130 │176 │232 │299 │378 │
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=4 │1  │2  │4  │8  │16 │31 │57 │99 │163│256 │386 │562 │794 │1093│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=5 │1  │2  │4  │8  │16 │32 │63 │120│219│382 │638 │1024│1586│2380│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=6 │1  │2  │4  │8  │16 │32 │64 │127│247│466 │848 │1486│2510│4096│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=7 │1  │2  │4  │8  │16 │32 │64 │128│255│502 │968 │1816│3302│5812│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=8 │1  │2  │4  │8  │16 │32 │64 │128│256│511 │1013│1981│3797│7099│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=9 │1  │2  │4  │8  │16 │32 │64 │128│256│512 │1023│2036│4017│7814│
├────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼────┼────┼────┼────┼────┤
│K=10│1  │2  │4  │8  │16 │32 │64 │128│256│512 │1024│2047│4083│8100│
└────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────┴────┴────┴────┴────┘

虽然它确实存在,但人们看不到任何明显的模式。我们可以看到的一件事是,当执行足够多次的否定时(即 K 是“耗尽”数组),我们似乎达到了 2^(N-1) 个独特的结果(即 1、2、4、8、16等)。

假设我们是暴力破解的。如果我们有一个长度为 4 的数组(即 N=4)且 K=1,则数组的元素 1、2、3 或 4 可以取反:

┌─┬─┬─┬─┐
│1│2│3│4│
└─┴─┴─┴─┘

如果 K=2,我们得到一个新的 a 维度(现在是一个二维问题),现在有 16 个可能的索引对用于否定:

┌───┬───┬───┬───┐
│1 1│1 2│1 3│1 4│
├───┼───┼───┼───┤
│2 1│2 2│2 3│2 4│
├───┼───┼───┼───┤
│3 1│3 2│3 3│3 4│
├───┼───┼───┼───┤
│4 1│4 2│4 3│4 4│
└───┴───┴───┴───┘

例如 [4 2] 表示 array[4] 和 array[2] 都将乘以 -1。

设置 K=3 使其成为 3 维:

┌─────┬─────┬─────┬─────┐┌─────┬─────┬─────┬─────┐┌─────┬─────┬─────┬─────┐┌─────┬─────┬─────┬─────┐
│1 1 1│1 1 2│1 1 3│1 1 4││2 1 1│2 1 2│2 1 3│2 1 4││3 1 1│3 1 2│3 1 3│3 1 4││4 1 1│4 1 2│4 1 3│4 1 4│
├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤
│1 2 1│1 2 2│1 2 3│1 2 4││2 2 1│2 2 2│2 2 3│2 2 4││3 2 1│3 2 2│3 2 3│3 2 4││4 2 1│4 2 2│4 2 3│4 2 4│
├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤
│1 3 1│1 3 2│1 3 3│1 3 4││2 3 1│2 3 2│2 3 3│2 3 4││3 3 1│3 3 2│3 3 3│3 3 4││4 3 1│4 3 2│4 3 3│4 3 4│
├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤├─────┼─────┼─────┼─────┤
│1 4 1│1 4 2│1 4 3│1 4 4││2 4 1│2 4 2│2 4 3│2 4 4││3 4 1│3 4 2│3 4 3│3 4 4││4 4 1│4 4 2│4 4 3│4 4 4│
└─────┴─────┴─────┴─────┘└─────┴─────┴─────┴─────┘└─────┴─────┴─────┴─────┘└─────┴─────┴─────┴─────┘

...例如 [1 1 1] 表示数组 [1] 将连续乘以 -1 三次。现在我们还可以看到,这 64 种可能性中有一些是重复的。

在进行蛮力计算时,实际上涉及到 10 维数据。随着数据的增长,最终系统内存不足。

数组包含什么数值并不重要。相反,我们当然只需要弄清楚符号的变化,即。与 -1 相乘。以下是 K = 1...5 和 N = 1...5 的唯一组合的可能数量:

┌───┬────┬───────────┬───────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│   │N=1 │N=2        │N=3                            │N=4                                                                              │N=5                                                                                                                                                                                                      │
├───┼────┼───────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│K=1│┌──┐│┌────┬────┐│┌──────┬──────┬──────┐         │┌────────┬────────┬────────┬────────┐                                            │┌──────────┬──────────┬──────────┬──────────┬──────────┐                                                                                                                                                 │
│   ││-1│││-1 1│1 -1│││-1 1 1│1 -1 1│1 1 -1│         ││-1 1 1 1│1 -1 1 1│1 1 -1 1│1 1 1 -1│                                            ││-1 1 1 1 1│1 -1 1 1 1│1 1 -1 1 1│1 1 1 -1 1│1 1 1 1 -1│                                                                                                                                                 │
│   │└──┘│└────┴────┘│└──────┴──────┴──────┘         │└────────┴────────┴────────┴────────┘                                            │└──────────┴──────────┴──────────┴──────────┴──────────┘                                                                                                                                                 │
├───┼────┼───────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│K=2│┌─┐ │┌───┬─────┐│┌─────┬───────┬───────┬───────┐│┌───────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐            │┌─────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┐                                                                      │
│   ││1│ ││1 1│-1 -1│││1 1 1│-1 -1 1│-1 1 -1│1 -1 -1│││1 1 1 1│-1 -1 1 1│-1 1 -1 1│-1 1 1 -1│1 -1 -1 1│1 -1 1 -1│1 1 -1 -1│            ││1 1 1 1 1│-1 -1 1 1 1│-1 1 -1 1 1│-1 1 1 -1 1│-1 1 1 1 -1│1 -1 -1 1 1│1 -1 1 -1 1│1 -1 1 1 -1│1 1 -1 -1 1│1 1 -1 1 -1│1 1 1 -1 -1│                                                                      │
│   │└─┘ │└───┴─────┘│└─────┴───────┴───────┴───────┘│└───────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘            │└─────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┘                                                                      │
├───┼────┼───────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│K=3│┌──┐│┌────┬────┐│┌──────┬──────┬──────┬────────┐│┌────────┬────────┬────────┬────────┬──────────┬──────────┬──────────┬──────────┐│┌──────────┬──────────┬──────────┬──────────┬──────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┐               │
│   ││-1│││-1 1│1 -1│││-1 1 1│1 -1 1│1 1 -1│-1 -1 -1│││-1 1 1 1│1 -1 1 1│1 1 -1 1│1 1 1 -1│-1 -1 -1 1│-1 -1 1 -1│-1 1 -1 -1│1 -1 -1 -1│││-1 1 1 1 1│1 -1 1 1 1│1 1 -1 1 1│1 1 1 -1 1│1 1 1 1 -1│-1 -1 -1 1 1│-1 -1 1 -1 1│-1 -1 1 1 -1│-1 1 -1 -1 1│-1 1 -1 1 -1│-1 1 1 -1 -1│1 -1 -1 -1 1│1 -1 -1 1 -1│1 -1 1 -1 -1│1 1 -1 -1 -1│               │
│   │└──┘│└────┴────┘│└──────┴──────┴──────┴────────┘│└────────┴────────┴────────┴────────┴──────────┴──────────┴──────────┴──────────┘│└──────────┴──────────┴──────────┴──────────┴──────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┘               │
├───┼────┼───────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│K=4│┌─┐ │┌───┬─────┐│┌─────┬───────┬───────┬───────┐│┌───────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬───────────┐│┌─────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬───────────┬─────────────┬─────────────┬─────────────┬─────────────┬─────────────┐│
│   ││1│ ││1 1│-1 -1│││1 1 1│-1 -1 1│-1 1 -1│1 -1 -1│││1 1 1 1│-1 -1 1 1│-1 1 -1 1│-1 1 1 -1│1 -1 -1 1│1 -1 1 -1│1 1 -1 -1│-1 -1 -1 -1│││1 1 1 1 1│-1 -1 1 1 1│-1 1 -1 1 1│-1 1 1 -1 1│-1 1 1 1 -1│1 -1 -1 1 1│1 -1 1 -1 1│1 -1 1 1 -1│1 1 -1 -1 1│1 1 -1 1 -1│1 1 1 -1 -1│-1 -1 -1 -1 1│-1 -1 -1 1 -1│-1 -1 1 -1 -1│-1 1 -1 -1 -1│1 -1 -1 -1 -1││
│   │└─┘ │└───┴─────┘│└─────┴───────┴───────┴───────┘│└───────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴───────────┘│└─────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴───────────┴─────────────┴─────────────┴─────────────┴─────────────┴─────────────┘│
├───┼────┼───────────┼───────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│K=5│┌──┐│┌────┬────┐│┌──────┬──────┬──────┬────────┐│┌────────┬────────┬────────┬────────┬──────────┬──────────┬──────────┬──────────┐│┌──────────┬──────────┬──────────┬──────────┬──────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬────────────┬──────────────┐│
│   ││-1│││-1 1│1 -1│││-1 1 1│1 -1 1│1 1 -1│-1 -1 -1│││-1 1 1 1│1 -1 1 1│1 1 -1 1│1 1 1 -1│-1 -1 -1 1│-1 -1 1 -1│-1 1 -1 -1│1 -1 -1 -1│││-1 1 1 1 1│1 -1 1 1 1│1 1 -1 1 1│1 1 1 -1 1│1 1 1 1 -1│-1 -1 -1 1 1│-1 -1 1 -1 1│-1 -1 1 1 -1│-1 1 -1 -1 1│-1 1 -1 1 -1│-1 1 1 -1 -1│1 -1 -1 -1 1│1 -1 -1 1 -1│1 -1 1 -1 -1│1 1 -1 -1 -1│-1 -1 -1 -1 -1││
│   │└──┘│└────┴────┘│└──────┴──────┴──────┴────────┘│└────────┴────────┴────────┴────────┴──────────┴──────────┴──────────┴──────────┘│└──────────┴──────────┴──────────┴──────────┴──────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘│
└───┴────┴───────────┴───────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

这无疑向我们展示了这种模式。如果 K 是奇数,我们得到奇数个否定,如果 K 是偶数,我们得到偶数个否定。两者都可能发生在数组大小 N 允许的数量内。即。如果 K=5,我们可以得到 1 个或 3 个或 5 个否定或适合数组的内容; IE。如果 N=4,我们不能有 5 个否定,而只有 1 或 3 个。

因此,我们可以使用阶乘/二项式 (m!n) 来解决这个问题,它告诉我们在 n 个数字空间中 m 个元素的唯一组合的可能数量。 IE。 3!5 将返回 10,因为有 10 种方法可以组合 1、2、3、4、5 的 3 个元素:

1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5

4!5 将返回 5:

1 2 3 4
1 2 3 5
1 2 4 5
1 3 4 5
2 3 4 5

而 3!3 将返回 1:

1 2 3

这个问题的公式是(2个例子):

combinations = (1!6) + (3!6) + (5!6) + (7!6) // K=7, N=6 - note that K is odd
combinations = (0!6) + (2!6) + (4!6) + (6!6) // K=6, N=6 - note that K is even

注意:0!n 始终为 1n!n 始终为 1(>n)!n 为始终为 0(例如 12!7 将返回 0)

要解决此任务,请执行(同样,对于一个大集合,其中 K = 1...10 和 N = 1...14):

┌────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────────┐
│    │N=1                                 │N=2                                 │N=3                                 │N=4                                 │N=5                                 │N=6                                 │N=7                                 │N=8                                 │N=9                                 │N=10                                      │N=11                                      │N=12                                      │N=13                                      │N=14                                      │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=1 │(1!1)                               │(1!2)                               │(1!3)                               │(1!4)                               │(1!5)                               │(1!6)                               │(1!7)                               │(1!8)                               │(1!9)                               │(1!10)                                    │(1!11)                                    │(1!12)                                    │(1!13)                                    │(1!14)                                    │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=2 │(0!1)+(2!1)                         │(0!2)+(2!2)                         │(0!3)+(2!3)                         │(0!4)+(2!4)                         │(0!5)+(2!5)                         │(0!6)+(2!6)                         │(0!7)+(2!7)                         │(0!8)+(2!8)                         │(0!9)+(2!9)                         │(0!10)+(2!10)                             │(0!11)+(2!11)                             │(0!12)+(2!12)                             │(0!13)+(2!13)                             │(0!14)+(2!14)                             │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=3 │(1!1)+(3!1)                         │(1!2)+(3!2)                         │(1!3)+(3!3)                         │(1!4)+(3!4)                         │(1!5)+(3!5)                         │(1!6)+(3!6)                         │(1!7)+(3!7)                         │(1!8)+(3!8)                         │(1!9)+(3!9)                         │(1!10)+(3!10)                             │(1!11)+(3!11)                             │(1!12)+(3!12)                             │(1!13)+(3!13)                             │(1!14)+(3!14)                             │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=4 │(0!1)+(2!1)+(4!1)                   │(0!2)+(2!2)+(4!2)                   │(0!3)+(2!3)+(4!3)                   │(0!4)+(2!4)+(4!4)                   │(0!5)+(2!5)+(4!5)                   │(0!6)+(2!6)+(4!6)                   │(0!7)+(2!7)+(4!7)                   │(0!8)+(2!8)+(4!8)                   │(0!9)+(2!9)+(4!9)                   │(0!10)+(2!10)+(4!10)                      │(0!11)+(2!11)+(4!11)                      │(0!12)+(2!12)+(4!12)                      │(0!13)+(2!13)+(4!13)                      │(0!14)+(2!14)+(4!14)                      │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=5 │(1!1)+(3!1)+(5!1)                   │(1!2)+(3!2)+(5!2)                   │(1!3)+(3!3)+(5!3)                   │(1!4)+(3!4)+(5!4)                   │(1!5)+(3!5)+(5!5)                   │(1!6)+(3!6)+(5!6)                   │(1!7)+(3!7)+(5!7)                   │(1!8)+(3!8)+(5!8)                   │(1!9)+(3!9)+(5!9)                   │(1!10)+(3!10)+(5!10)                      │(1!11)+(3!11)+(5!11)                      │(1!12)+(3!12)+(5!12)                      │(1!13)+(3!13)+(5!13)                      │(1!14)+(3!14)+(5!14)                      │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=6 │(0!1)+(2!1)+(4!1)+(6!1)             │(0!2)+(2!2)+(4!2)+(6!2)             │(0!3)+(2!3)+(4!3)+(6!3)             │(0!4)+(2!4)+(4!4)+(6!4)             │(0!5)+(2!5)+(4!5)+(6!5)             │(0!6)+(2!6)+(4!6)+(6!6)             │(0!7)+(2!7)+(4!7)+(6!7)             │(0!8)+(2!8)+(4!8)+(6!8)             │(0!9)+(2!9)+(4!9)+(6!9)             │(0!10)+(2!10)+(4!10)+(6!10)               │(0!11)+(2!11)+(4!11)+(6!11)               │(0!12)+(2!12)+(4!12)+(6!12)               │(0!13)+(2!13)+(4!13)+(6!13)               │(0!14)+(2!14)+(4!14)+(6!14)               │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=7 │(1!1)+(3!1)+(5!1)+(7!1)             │(1!2)+(3!2)+(5!2)+(7!2)             │(1!3)+(3!3)+(5!3)+(7!3)             │(1!4)+(3!4)+(5!4)+(7!4)             │(1!5)+(3!5)+(5!5)+(7!5)             │(1!6)+(3!6)+(5!6)+(7!6)             │(1!7)+(3!7)+(5!7)+(7!7)             │(1!8)+(3!8)+(5!8)+(7!8)             │(1!9)+(3!9)+(5!9)+(7!9)             │(1!10)+(3!10)+(5!10)+(7!10)               │(1!11)+(3!11)+(5!11)+(7!11)               │(1!12)+(3!12)+(5!12)+(7!12)               │(1!13)+(3!13)+(5!13)+(7!13)               │(1!14)+(3!14)+(5!14)+(7!14)               │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=8 │(0!1)+(2!1)+(4!1)+(6!1)+(8!1)       │(0!2)+(2!2)+(4!2)+(6!2)+(8!2)       │(0!3)+(2!3)+(4!3)+(6!3)+(8!3)       │(0!4)+(2!4)+(4!4)+(6!4)+(8!4)       │(0!5)+(2!5)+(4!5)+(6!5)+(8!5)       │(0!6)+(2!6)+(4!6)+(6!6)+(8!6)       │(0!7)+(2!7)+(4!7)+(6!7)+(8!7)       │(0!8)+(2!8)+(4!8)+(6!8)+(8!8)       │(0!9)+(2!9)+(4!9)+(6!9)+(8!9)       │(0!10)+(2!10)+(4!10)+(6!10)+(8!10)        │(0!11)+(2!11)+(4!11)+(6!11)+(8!11)        │(0!12)+(2!12)+(4!12)+(6!12)+(8!12)        │(0!13)+(2!13)+(4!13)+(6!13)+(8!13)        │(0!14)+(2!14)+(4!14)+(6!14)+(8!14)        │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=9 │(1!1)+(3!1)+(5!1)+(7!1)+(9!1)       │(1!2)+(3!2)+(5!2)+(7!2)+(9!2)       │(1!3)+(3!3)+(5!3)+(7!3)+(9!3)       │(1!4)+(3!4)+(5!4)+(7!4)+(9!4)       │(1!5)+(3!5)+(5!5)+(7!5)+(9!5)       │(1!6)+(3!6)+(5!6)+(7!6)+(9!6)       │(1!7)+(3!7)+(5!7)+(7!7)+(9!7)       │(1!8)+(3!8)+(5!8)+(7!8)+(9!8)       │(1!9)+(3!9)+(5!9)+(7!9)+(9!9)       │(1!10)+(3!10)+(5!10)+(7!10)+(9!10)        │(1!11)+(3!11)+(5!11)+(7!11)+(9!11)        │(1!12)+(3!12)+(5!12)+(7!12)+(9!12)        │(1!13)+(3!13)+(5!13)+(7!13)+(9!13)        │(1!14)+(3!14)+(5!14)+(7!14)+(9!14)        │
├────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────────┤
│K=10│(0!1)+(2!1)+(4!1)+(6!1)+(8!1)+(10!1)│(0!2)+(2!2)+(4!2)+(6!2)+(8!2)+(10!2)│(0!3)+(2!3)+(4!3)+(6!3)+(8!3)+(10!3)│(0!4)+(2!4)+(4!4)+(6!4)+(8!4)+(10!4)│(0!5)+(2!5)+(4!5)+(6!5)+(8!5)+(10!5)│(0!6)+(2!6)+(4!6)+(6!6)+(8!6)+(10!6)│(0!7)+(2!7)+(4!7)+(6!7)+(8!7)+(10!7)│(0!8)+(2!8)+(4!8)+(6!8)+(8!8)+(10!8)│(0!9)+(2!9)+(4!9)+(6!9)+(8!9)+(10!9)│(0!10)+(2!10)+(4!10)+(6!10)+(8!10)+(10!10)│(0!11)+(2!11)+(4!11)+(6!11)+(8!11)+(10!11)│(0!12)+(2!12)+(4!12)+(6!12)+(8!12)+(10!12)│(0!13)+(2!13)+(4!13)+(6!13)+(8!13)+(10!13)│(0!14)+(2!14)+(4!14)+(6!14)+(8!14)+(10!14)│
└────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┴──────────────────────────────────────────┘

结果与之前的暴力破解相同:

       N=1  N=2  N=3  N=4  N=5  N=6  N=7  N=8  N=9  N=10  N=11  N=12  N=13  N=14 
 K=1     1    2    3    4    5    6    7    8    9    10    11    12    13    14 
 K=2     1    2    4    7   11   16   22   29   37    46    56    67    79    92 
 K=3     1    2    4    8   15   26   42   64   93   130   176   232   299   378 
 K=4     1    2    4    8   16   31   57   99  163   256   386   562   794  1093 
 K=5     1    2    4    8   16   32   63  120  219   382   638  1024  1586  2380 
 K=6     1    2    4    8   16   32   64  127  247   466   848  1486  2510  4096 
 K=7     1    2    4    8   16   32   64  128  255   502   968  1816  3302  5812 
 K=8     1    2    4    8   16   32   64  128  256   511  1013  1981  3797  7099 
 K=9     1    2    4    8   16   32   64  128  256   512  1023  2036  4017  7814 
 K=10    1    2    4    8   16   32   64  128  256   512  1024  2047  4083  8100 

这些是修改 K 次后唯一数组的总数。希望这可以澄清:-)。

【讨论】:

【参考方案2】:

我没有太多声誉可以发表评论,所以我在这里问。

@Stormwind 不会出现这种情况,因为数组也可能包含 0。

【讨论】:

以上是关于查找数组的总数的主要内容,如果未能解决你的问题,请参考以下文章

查找数组中某些字符串的总数

[使用reduce查找数组内对象的总和

从向量数组中查找给定向量中公共元素的数量

获取数组中的项目总数

带范围数的推荐组合算法

计算数组中的总数