如何获取数据库中一组唯一对的总数?

时间:2013-09-17 20:36:22

标签: database math

4项:

A
B
C
D

可能有6对独特的对:

AB
AC
AD
BC
BD
CD

如果我有100个起始项怎么办?有多少独特的对?有没有一个公式可以把它扔进去?

5 个答案:

答案 0 :(得分:54)

您要找的是 n选择k 。基本上是:

enter image description here

对于每一对100件商品,您将拥有4,950件组合 - 如果订单无关紧要(AB和BA被视为单一组合)并且您不想重复(AA不是有效的一对)。

答案 1 :(得分:41)

TLDR;公式为n,其中(AB = BA)是集合中的项目数。

说明:

要查找集合中唯一对的数量,其中对数受commutative property 1 + 2 + ... + (n-1)的约束,您可以计算n A B C D summation的位置A 1}}是集合中的项目数。

推理如下,假设您有4个项目:

n-1

可与AB AC AD 配对的项目数为3,或B

n-2

以下可与B配对的项目数为A(因为BC BD 已与(n-1) + (n-2) + ... + (n-(n-1)) 配对):

1 + 2 + ... + (n-1)

依旧......

n(n-1)/2

相同
for index, row in df.iterrows():
   #Do Stuff

                  pt_ID Easting Northing         Attribute
Site  Survey_Date                                         
M006R 2004-12-30   1019  245473   651608  WE              
      2004-12-30   1038  245563   651543  WE              
      2004-12-30   1017  245471   651593  WE              
      2004-12-30   1021  245482   651616  WE              
      2004-12-30   1023  245478   651604  WE              
      2004-12-30   1049  245665   651498  WE              
      2004-12-30   1020  245477   651614  WE              
      2004-12-30   1041  245577   651528  WE              
      2004-12-30   1040  245574   651535  WE              
      2004-12-30   1037  245552   651544  WE   

答案 2 :(得分:34)

这就是你可以自己解决这些问题的方法:

该对中的第一个可以以N(= 100)方式挑选。您不想再次选择此项目,因此可以以N-1(= 99)方式选择该对中的第二个。总共可以用N(N-1)(= 100 * 99 = 9900)不同的方式从N中挑选2个项目。

但是请坚持,这样你也可以计算不同的顺序:AB和BA都被计算在内。由于每对被计数两次,您必须将N(N-1)除以2(您可以订购两个项目列表的方式的数量)。使用一组N可以制作的两个子集的数量是N(N-1)/ 2(= 9900/2 = 4950)。

答案 3 :(得分:2)

我正在解决这个问题algorithm并陷入对部分。

这个解释对我很有帮助 https://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/

所以要计算一系列数字的总和:

n(n+1)/2

但你需要计算这个

1 + 2 + ... + (n-1)

所以为了得到这个,你可以使用

n(n+1)/2 - n

等于

n(n-1)/2

答案 4 :(得分:-3)

这是一个有点老的帖子,但我总是从第一个数字正下方的数字开始,即如果一组中有13个人从12号开始并开始添加这样的12 + 11 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1这样你添加的下一个数字总是减去前一个数字。这是因为第一个人总是会有12个其他人配对而不包括他们自己,当你按顺序排列时,一对总是被取出,因此下一个人总是会比前一个人少一个数量的配对选项。 希望这对你有意义lol