给定在同一平面上的三个平行直线l1 , l2和l3 。 m点, n点和k点的总数分别位于线l1 , l2 , l3上。本文旨在找到在这些点处由顶点形成的三角形的最大数量。
例子:
Input : m = 14, n = 34, k = 114
Output : 448708.0
Input : m = 95, n = 77, k = 94
Output : 2755951.0
方法-
- 三角形总数=
- 从l1平面无效的三角框的三角形数=
- 从l2平面无效的三角框的三角形数=
- 从l3平面无效的三角框的三角形数=
- 因此,有效三角形数=
以下是该方法的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