고등학교에서 오래된 삼각법 메모를 파헤칠 시간입니다! 문제는 다른 삼각형의 알려지지 않은면과 각도를 해결하는 것입니다. 코드 골프에서 관례 적으로 가장 작은 작업 코드가 승리합니다.
이것은 사소한 문제가 아닙니다. 파이썬에서 내 참조 구현은 현재 838 837 자로 줄어들지 만 솔루션을 훨씬 더 작게 골프화 할 수 있다고 확신합니다.
또한 붙어있는 경우 Wikipedia 의이 섹션으로 이동하십시오 : 삼각형 : 측면 및 각도 계산 .
입력
다음 삼각형은이 챌린지에 사용 된 측면과 각도의 이름을 보여줍니다. 측면은 소문자이고 각도는 대문자입니다.
입력은 6 개의 공백으로 구분 된 값으로 제공 stdin
되거나 명령 줄 인수 (선택 사항)로 제공됩니다. 6 개의 값은 측면 a, b, c
과 각도에 해당합니다 A, B, C
. 알 수없는면은 물음표 ( ?
)로 표시 됩니다. 입력 및 출력 각도는 모두 라디안이어야합니다. 입력 값이 정확하다고 가정 할 수 있습니다 (아무 것도 검증하지 않아도 됨). 입력 삼각형이 축퇴하지 않고 모든면과 각도가 0이 아니라고 가정 할 수도 있습니다.
다음 입력 예는 side a
is 8
, side b
is 12
및 angle A
is 0.5
radians를 알려줍니다 .
8 12 ? 0.5 ? ?
산출
출력은 공백으로 구분 된 6 개의 숫자 입력과 같은 형식으로 제공됩니다 stdout
. 입력 삼각형을 해결할 수없는 경우는 예외입니다. 그런 다음 문자열 "No solution"
을 작성해야합니다 stdout
. 두 가지 솔루션이 가능하면 둘 사이에 개행이 출력됩니다.
위의 입력에 대한 출력은 다음과 같습니다.
8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388
8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714
출력은 정밀도가 높을 필요는 없지만 최소한 몇 십진수가 필요합니다.
규칙
- 입력을
stdin
명령 행 인수 에서 읽습니다. - 출력은
stdout
- 주어진 입력으로 두 가지 솔루션이 가능하다면
- 하나 또는 두 개의 명확한 솔루션을 얻을 수있는 정보가 너무 적은
"No solution"
경우 사례를 고려하십시오. - 내장 또는 기존 코드를 사용할 수 없습니다 (물론 "
solveTriangle
"등의 함수는 사용할 수 없지만 trig 함수는 사용할 수 있습니다 ) - 최단 코드 승리
테스트 사례
에 3 4 5 ? ? ?
밖 3.0 4.0 5.0 0.643501108793 0.927295218002 1.57079630572
에 ? 4 ? 0.64 0.92 1.57
밖 3.00248479301 4.0 5.02764025486 0.64 0.92 1.57
에 ? ? 5 ? 0.92 ?
밖 No solution
에 ? ? 5 ? 0.92 1.57
밖 3.03226857833 3.97800936148 5.0 0.65159265359 0.92 1.57
에 8 12 ? 0.5 ? ?
아웃 (두 가지 솔루션)
8.0 12.0 16.0899264342 0.5 0.802561439714 1.83903121388
8.0 12.0 4.97205505116 0.5 2.33903121388 0.302561439714
에 8 12 ? ? .5 ?
밖 8.0 12.0 18.3912222133 0.325325285223 0.5 2.31626736837