4项:
A
B
C
D
可能有6对独特的对:
AB
AC
AD
BC
BD
CD
如果我有100个起始项怎么办?有多少独特的对?有没有一个公式可以把它扔进去?
答案 0 :(得分:54)
您要找的是 n选择k 。基本上是:
对于每一对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