도움! 수학 시험이 곧오고 공부하지 않았습니다! 1 시험의 일부는 정점 좌표에 따라 사변형을 분류하는 것인데, 불행히도 어떻게 해야할지 모르겠습니다. 2
따라서 당신의 도전은 나를 위해이 작업을 수행하는 프로그램을 작성하는 것입니다.
도전
3 개의 정점이 동일하지 않은 4 개의 정점이 주어지면 4 개의 정점에 의해 형성된 사변형의 가장 구체적인 분류를 결정하십시오.
"가장 구체적인 분류"의 의미는 모든 정사각형이 사각형이지만 모양이 정사각형 인 경우 정사각형임을 나타내며 사각형임을 나타내지 않아야합니다.
입력
입력은 4 개의 (x, y) 좌표로 제공됩니다. 이것을 길이 4의리스트 / 튜플의 길이 4의리스트로 취할 수 있습니다. 또는 x 좌표리스트와 각 y 좌표리스트로 입력 할 수 있습니다.
내 모양이 지점에서 정점이있는 경우 예를 들어, (0, 0)
, (5, 0)
, (6, 1)
, 그리고 (1, 1)
, 당신은 다음과 같은 형식 또는 이와 유사한 중 하나에 입력을 선택할 수 있습니다 :
[(0, 0), (5, 0), (6, 1), (1, 1)]
([0, 5, 6, 1], [0, 0, 1, 1])
사변형이 자체 교차하지 않고 점이 올바른 순서로 제공된다고 가정 할 수 있습니다 (즉, 입력의 연속 된 두 점이 사변형의 선 세그먼트로 연결됨).
산출
다음과 같은 각 사변형 클래스 각각에 대해 고유 한 출력이 필요합니다.
- 광장
- 구형
- 마름모
- 평행 사변형
- 사다리꼴 / 사다리꼴
- 연
- 사변형
이것은 정확한 이름 자체, 문자, 정수 등일 수 있습니다.
규칙
- 표준 허점 적용
- 프로그래밍 언어에이 정확한 작업을 수행 할 수있는 기본 제공 기능이있는 경우 해당 기본 제공 기능은 허용되지 않습니다.
- 두 지점 사이의 거리를 찾기위한 내장 기능이 허용됩니다.
- 두 선 사이의 각도를 찾기위한 내장 기능이 허용됩니다.
이 시점에서 모든 용어를 알고 있으면 프로그래밍을 시작할 수 있습니다! (테스트 케이스가 끝났습니다)
술어
이 섹션은 다른 모양의 정의에 대한 설명이 필요한 사람을위한 것입니다.
광장
4 변은 4 변의 길이가 모두 같고 인접한 변의 모든 쌍이 직각 (즉, 직사각형과 마름모) 인 경우에만 정사각형입니다.
구형
사각형은 인접한 한 쌍의 모든면이 수직 인 경우에만 사각형입니다.
마름모
4 변은 4 변이 모두 같은 경우에만 마름모입니다.
평행 사변형
사변형은 각 쌍의 반대면이 평행하고 각 쌍의 반대 각이 동일한 경우에만 평행 사변형입니다. 이 두 조건은 서로를 암시하므로 그 중 하나만 확인하면됩니다.
사다리꼴 / 사다리꼴
사변형은 적어도 한 쌍의 평행면을 갖는 경우에만 사다리꼴 / 사다리꼴입니다.
연
인접한 두 변의 쌍이 길이가 같으면 사변형은 연입니다. 즉, 인접한 측면 중 두 개가 동일하고 다른 두 면도 동일합니다.
테스트 사례
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
링크 (데스 모 그래프 계산기)
다음은 각 테스트 사례의 시각화에 대한 링크입니다.
정사각형
직사각형
마름모
평행 사변형
사다리꼴 / 사다리꼴
연
사변형
승리 기준
분명히 시험에 컴퓨터를 가져올 수는 없으므로 암기 할 수 있도록 가능한 가장 짧은 코드를 작성해야합니다. 여백에 쓰고 TryItOffline TM을 사용하여 실행 하여 프로그램이 가능한 한 작은 여백에 맞도록해야합니다!
1 물론 했어요 : P
2 물론하겠습니다 : P