Программа для проверки конгруэнтности двух треугольников

Опубликовано: 16 Января, 2022

Даны четыре массива по 3 числа в каждом, которые представляют стороны и углы двух треугольников. Задача - проверить, совпадают ли два треугольника. Также выведите теорему, по которой они конгруэнтны.

Примечание. Все стороны и углы, указанные в качестве входных данных, относятся к допустимым треугольникам.

Примеры:

Ввод: сторона1 = [3, 4, 5] угол1 = [90, 60, 30].
        сторона2 = [4, 3, 5] угол2 = [60, 30, 90]
Результат: Треугольники совпадают по SSS SAS ASA AAS HL.  

Ввод: сторона1 = [3, 5, 6] угол1 = [80, 50, 50]
        сторона2 = [1, 1, 1] угол2 = [60, 60, 60]
Вывод: треугольники не совпадают.

Рекомендуется: сначала попробуйте свой подход в {IDE}, прежде чем переходить к решению.

Конгруэнтные треугольники - это два или более треугольника, у которых все соответствующие стороны равны, или пара сторон и между углами равны, или пара углов и стороны между ними равны, или пара угла и другая сторона равны, или гипотенуза и одна сторона. равны.

Конгруэнтность треугольников доказывается следующими теоремами:

  1. Критерии конгруэнтности сторона-сторона-сторона (SSS): если все стороны треугольника равны сторонам другого треугольника, то треугольники называются конгруэнтными по свойству « сторона-сторона-сторона» (SSS).
    В приведенном выше треугольнике ABC и A'B'C ', если AB = A'B' и BC = B'C 'и CA = C'A', тогда треугольники конгруэнтны.
  2. Боковой угол-сторона (SAS) Конгруэнтные критерии: если две стороны двух треугольников равны и угол между ними одинаков в обоих треугольниках, то треугольники считаются конгруэнтными по свойству Side-Angle-Side (SAS) . В приведенном выше треугольнике ABC и A'B'C ', если AB = A'B' и BC = B'C 'и знак равно треугольники конгруэнтны.
  3. Угол-сторона-угол (ASA) Конгруэнтные критерии: если два угла двух треугольников равны и длина стороны между ними одинакова в обоих треугольниках, то говорят, что треугольники конгруэнтны по свойству Angle-Side-Angle ( ASA). В приведенном выше треугольнике ABC и A'B'C ', если знак равно
    а также знак равно и BC = B'C ', тогда треугольники конгруэнтны.
  4. Угол-угол-сторона (AAS) Конгруэнтные критерии: если два угла двух треугольников равны, а длина другой стороны одинакова в обоих треугольниках, то треугольники считаются конгруэнтными по свойству Angle-Angle-Side (AAS ). В приведенном выше треугольнике ABC и A'B'C ', если, знак равно а также знак равно и CA = C'A ', тогда треугольники конгруэнтны.
  5. Критерии конгруэнтности гипотенузы (HL):
    Если гипотенуза двух треугольников равна и длина любой другой стороны одинакова в обоих треугольниках, то треугольники называются конгруэнтными по свойству гипотенузы-ноги (HL).

Below is the implementation of the above theorems.

# Python program to check 
# similarity between two triangles.
   
# Function for SAS congruency
def cong_sas(s1, s2, a1, a2): 
       
    s1 = [float(i) for i in s1]
    s2 = [float(i) for i in s2]
    a1 = [float(i) for i in a1]
    a2 = [float(i) for i in a2]
       
    s1.sort()
    s2.sort()
    a1.sort()
    a2.sort()
       
    # Check for SAS
       
    # angle b / w two smallest sides is largest.
    if s1[0] == s2[0] and s1[1] == s2[1]:
           
        # since we take angle b / w the sides.
        if a1[2] == a2[2]:         
            return 1
               
    if s1[1] == s2[1] and s1[2] == s2[2]:
        if a1[0] == a2[0]:
            return 1
               
    if s1[2] == s2[2] and s1[0] == s2[0]:
        if a1[1] == a2[1]:
            return 1
       
    return 0
      
# Function for ASA congruency
def cong_asa(s1, s2, a1, a2): 
       
    s1 = [float(i) for i in s1]
    s2 = [float(i) for i in s2]
    a1 = [float(i) for i in a1]
    a2 = [float(i) for i in a2]
       
    s1.sort()
    s2.sort()
    a1.sort()
    a2.sort()
       
    # Check for ASA
       
    # side b / w two smallest angle is largest.
    if a1[0] == a2[0] and a1[1] == a2[1]:
           
        # since we take side b / w the angle.
        if s1[2] == s2[2]:         
            return 1
               
    if a1[1] == a2[1] and a1[2] == a2[2]:
        if s1[0] == s2[0]:
            return 1
               
    if a1[2] == a2[2] and a1[0] == a2[0]:
        if s1[1] == s2[1]:
            return 1
       
    return 0
      
# Function for AAS congruency
def cong_aas(s1, s2, a1, a2): 
       
    s1 = [float(i) for i in s1]
    s2 = [float(i) for i in s2]
    a1 = [float(i) for i in a1]
    a2 = [float(i) for i in a2]
       
    s1.sort()
    s2.sort()
    a1.sort()
    a2.sort()
       
    # Check for AAS
       
    # side other two smallest angle is smallest or 2nd smallest.
    if a1[0] == a2[0] and a1[1] == a2[1]:
           
        # since we take side other than angles.
        if s1[0] == s2[0] or s1[1] == s2[1]:         
            return 1
               
    if a1[1] == a2[1] and a1[2] == a2[2]:
        if s1[1] == s2[1] or s1[2] == s2[2]:
            return 1
               
    if a1[2] == a2[2] and a1[0] == a2[0]:
        if s1[0] == s2[0] or s1[2] == s2[2]:
            return 1
       
    return 0
   
# Function for HL congruency
def cong_hl(s1, s2): 
       
    s1 = [float(i) for i in s1]
    s2 = [float(i) for i in s2] 
    s1.sort()
    s2.sort() 
       
    # Check for HL
    if s1[2] == s2[2]:
        if s1[1] == s2[1] or s1[0] == s2[0]:
            return 1
       
    return 0
      
# Function for SSS congruency
def cong_sss(s1, s2): 
       
    s1 = [float(i) for i in s1]
    s2 = [float(i) for i in s2] 
    s1.sort()
    s2.sort() 
       
    # Check for SSS
    if(s1[0] == s2[0] and s1[1] == s2[1] and s1[2] == s2[2]):
        return 1
       
    return 0
       
   
# Driver Code 
s1 = [3, 4, 5]
s2 = [4, 3, 5]
           
a1 = [90, 60, 30]
a2 = [60, 30, 90]
   
# function call for SSS congruency
sss = cong_sss(s1, s2) 
   
# function call for SAS congruency 
sas = cong_sas(s1, s2, a1, a2) 
  
# function call for ASA congruency 
asa = cong_asa(s1, s2, a1, a2) 
   
# function call for AAS congruency
aas = cong_aas(s1, s2, a1, a2)
  
# function call for HL congruency
hl = cong_hl(s1, s2, ) 
   
# Check if triangles are congruent or not 
if sss or sas or asa or aas or hl : 
    print "Triangles are congruent by",
    if sss: print "SSS"
    if sas: print "SAS",
    if asa: print "ASA",
    if aas: print "AAS",
    if hl: print "HL",
else: print "Triangles are not congruent"
Output:
Triangles are congruent by SSS SAS ASA AAS HL

Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .

Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.