Wsparcie! Mój egzamin z matematyki już niedługo, a ja się nie uczyłem! 1 Część egzaminu polega na sklasyfikowaniu czworoboku ze względu na jego współrzędne wierzchołka, co niestety nie wiem jak to zrobić. 2)
Zatem twoim wyzwaniem jest napisanie programu, który zrobi to za mnie, więc nie zawiodę!
Wyzwanie
Biorąc pod uwagę cztery wierzchołki, tak że żadne trzy z nich nie są kolinearne, określ najbardziej szczegółową klasyfikację czworoboku utworzonego przez te cztery wierzchołki.
Rozumiem przez „najbardziej szczegółową klasyfikację”, że chociaż wszystkie kwadraty są prostokątami, jeśli kształt jest kwadratem, należy wskazać, że jest kwadratem, a nie wskazać, że jest prostokątem.
Wejście
Dane wejściowe będą podawane jako cztery współrzędne (x, y). Możesz wziąć je jako listę długości 4 list / krotek o długości 2. Alternatywnie, możesz wziąć dane wejściowe jako listę współrzędnych x i listę odpowiednich współrzędnych y.
Na przykład, jeśli mój kształt ma wierzchołki w punktach (0, 0)
, (5, 0)
, (6, 1)
, i (1, 1)
, można zdecydować się na wejście w jednym z następujących formatów lub coś podobnego:
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
Możesz założyć, że czworobok nie przecina się sam, i że punkty są podane we właściwej kolejności (to znaczy dwa kolejne punkty na wejściu zostaną połączone segmentem linii w czworoboku).
Wynik
Będziesz potrzebował unikalnego wyjścia dla każdej z następujących klas czworokąta:
- Plac
- Prostokąt
- Romb
- Równoległobok
- Trapez / Trapez
- Latawiec
- Czworoboczny
Może to być sama nazwa, znak, liczba całkowita itp.
Zasady
- Obowiązują standardowe luki
- Jeśli Twój język programowania ma wbudowaną funkcję, która wykona dokładnie to zadanie, ta wbudowana funkcja jest niedozwolona.
- Dozwolone są wbudowane funkcje wyszukiwania odległości między dwoma punktami.
- Dozwolone są wbudowane funkcje wyszukiwania kąta między dwiema liniami.
W tym momencie, jeśli znasz wszystkie warunki, jesteś gotowy, aby rozpocząć programowanie! (Przypadki testowe są na końcu)
Terminologia
Ta sekcja jest przeznaczona dla każdego, kto potrzebuje wyjaśnień na temat definicji różnych kształtów.
Plac
Czworokąt jest kwadratem wtedy i tylko wtedy, gdy wszystkie 4 jego boki mają równą długość, a każda para sąsiednich boków jest prostopadła (to znaczy zarówno prostokąt, jak i romb).
Prostokąt
Czworokąt jest prostokątem tylko wtedy, gdy każda para sąsiednich boków jest prostopadła.
Romb
Czworokąt jest rombem tylko wtedy, gdy wszystkie 4 jego boki są równe.
Równoległobok
Czworokąt jest równoległobokiem wtedy i tylko wtedy, gdy każda para przeciwnych boków jest równoległa, a każda para przeciwnych kątów jest równa. Oba te warunki sugerują się nawzajem, więc musisz tylko sprawdzić jeden z nich.
Trapez / Trapez
Czworobok jest trapezem / trapezem tylko wtedy, gdy ma co najmniej jedną parę równoległych boków.
Latawiec
Czworobok jest latawcem, jeśli dwie przeciwległe pary sąsiednich boków są równej długości; to znaczy, dwa sąsiednie boki są równe, a pozostałe dwa są równe.
Przypadki testowe
input as (x, y) * 4 -> full name
[(0, 0), (1, 0), (1, 1), (0, 1)] -> square
[(0, 0), (1, 1), (-1, 3), (-2, 2)] -> rectangle
[(0, 0), (5, 0), (8, 4), (3, 4)] -> rhombus
[(0, 0), (5, 0), (6, 1), (1, 1)] -> parallelogram
[(0, 0), (4, 0), (3, 1), (1, 1)] -> trapezoid/trapezium
[(0, 0), (1, 1), (0, 3), (-1, 1)] -> kite
[(0, 0), (2, 0), (4, 4), (0, 1)] -> quadrilateral
Linki (Kalkulator graficzny Desmos)
Oto linki do wizualizacji każdego z przypadków testowych.
Kwadratowy
prostokąt
Romb
równoległobok
Trapez /
latawiec trapezowy
Czworoboczny
Zwycięskie kryteria
Oczywiście nie mogę wziąć udziału w egzaminie, więc musisz napisać możliwie najkrótszy kod, aby móc go zapamiętać. Muszę zapisać go na marginesach i uruchomić za pomocą TryItOffline TM , aby dopasować go do marginesów, twój program musi być tak mały, jak to możliwe!
1 Oczywiście, że tak: P
2 Oczywiście, że tak: P