📜  Python –查找在三行上具有给定点的三角形的最大数量

📅  最后修改于: 2021-04-24 03:22:50             🧑  作者: Mango

给定在同一平面上的三个平行直线l1l2l3m点, n点和k点的总数分别位于线l1l2l3上。本文旨在找到在这些点处由顶点形成的三角形的最大数量。

例子:

方法-

  1. 三角形总数= (m + n + k)C3
  2. 从l1平面无效的三角框的三角形数= mC3
  3. 从l2平面无效的三角框的三角形数= nC3
  4. 从l3平面无效的三角框的三角形数= kC3
  5. 因此,有效三角形数= (m + n + k)C3 - mC3 - nC3 - kC3

以下是该方法的Python代码实现。

# Pyton code implementation
import math
def nooftriangle(m, n, k):
      
    # r1 = (m + n + k)C3
    r1 = math.factorial(m + n + k) / (
            math.factorial(3) * math.factorial(m + n + k - 3))
    # r2 = mC3
    r2 = math.factorial(m) / (math.factorial(3) * math.factorial(m - 3))
      
    # r3 = nC3
    r3 = math.factorial(n) / (math.factorial(3) * math.factorial(n - 3))
      
    #r4 = kC3
    r4 = math.factorial(k) / (math.factorial(3) * math.factorial(k - 3))
      
    result = r1 - r2 - r3 - r4
    return(result) 
      
# Driver code
m = 17
n = 16
k = 11
print("Number of traingles : ", nooftriangle(m, n, k))
      

输出:

Number of traingles :  11839.0