Rosetta Stone Challenge의 목표는 가능한 한 많은 언어로 솔루션을 작성하는 것입니다. 다국어 프로그래밍을 과시하십시오!
도전
문제는 가능한 많은 프로그래밍 언어로 숫자 목록을 입력하고 데이터의 상자 그림을 출력하는 프로그램을 구현하는 것 입니다. 상자 그림에는 데이터의 사 분위수와 특이 치가 표시되며 스케일도 있습니다. 대부분 언어 쇼케이스이기 때문에 언어에있는 모든 종류의 표준 라이브러리 함수를 사용할 수 있습니다.
"상자 그림"이란 무엇입니까?
상자의 플롯은 데이터를 그래프의 방법입니다. 상자 그림에는 몇 가지 필수 기능이 있습니다. 첫 번째 특징은 상자이며, 어느 쪽이든 데이터의 1 사분 위와 3 사분 위에 위치합니다. 중앙값을 제공하는 상자 그림의 중앙에 줄이 있습니다. 상자 그림의 양쪽 끝에는 데이터의 변화를 보여주는 "위스커 (whisker)"가 있습니다. 수염은 상자에서 특이 값을 제외하고 데이터 세트의 최소 및 최대 지점으로 확장됩니다. 특이 치는 개별 점으로 표시됩니다.
먼저 데이터의 중앙값을 가져옵니다. 그런 다음 중앙값 보다 엄격하게 작은 모든 데이터 포인트를 가져 와서이 세트의 중앙값을 계산하여 첫 번째 사 분위수 (Q1)가되도록합니다. 중앙값 보다 엄격하게 큰 모든 데이터 포인트를 가져 와서이 세트의 중앙값을 계산하여 3 분위 (Q3)가되도록합니다. 의 값을 찾으십시오 R = 1.5*(Q3 - Q1)
. 이보다 적은 숫자 Q1 - R
는 특이 치입니다. Q3 + R
특이 치 보다 큰 숫자 특이 치가 아닌 모든 데이터 포인트 세트를 가져 오면이 세트의 최소값과 최대 값에 따라 두 수염의 끝이 결정됩니다.
입력
입력은 n=
숫자로 시작합니다 . 그러면 n
줄당 하나씩 숫자 가 나타납니다 . 모든 숫자는 0에서 63까지의 정수입니다.
n=8
29
1
22
18
12
16
16
22
산출
출력은 상자 그림의 표현이됩니다. 플롯을 그리는 가능한 한 가지 방법은 플롯을 ASCII로 렌더링하는 것입니다. 상자 그림을 ASCII 이외의 여러 방법으로 렌더링 할 수 있지만 주요 요구 사항은 중요한 기능의 정확한 위치를 알 수 있도록 충분히 크게 그려야합니다. 상자 그림에는 약 5-10 개의 숫자가 균등 간격으로 구성되어 있어야합니다. 위의 데이터에 대한 예제 플롯은 다음과 같습니다.
+--+----+
| | |
X +-+ | +------+
| | |
+--+----+
0 0 1 1 2 2 3
0 5 0 5 0 5 0
객관적인 승리 기준
객관적인 승리 기준은 다음과 같습니다. 각 언어는 가장 짧은 참가작을 작성할 수있는 사람에 대한 별도의 경쟁이지만 전체 우승자는 이러한 하위 경쟁을 가장 많이이기는 사람이됩니다. 이것은 많은 다른 언어로 대답하는 사람이 이점을 얻을 수 있음을 의미합니다. 코드 골프는 대부분 하나의 언어로 된 솔루션이있을 때 가장 큰 걸림돌입니다. 가장 짧은 프로그램을 가진 사람은 그 언어에 대한 학점을 얻습니다.
규칙, 제한 및 참고
귀하의 프로그램은 2013 년 4 월 11 일 이전에 존재했던 어떤 언어로도 작성 될 수 있습니다. 또한 저는 테스트를 할 수 없기 때문에 좀 더 흔하지 않은 / 비어적인 언어로 작성된 응답을 확인하기 위해 커뮤니티에 의존해야합니다 그들.
현재 리더 보드
이 섹션은 정기적으로 업데이트되어 언어의 수와 언어를 구사하는 사람을 보여줍니다.
- 줄리아 (604)-Plannapus
- 매스 매 티카 (71)-Chyanog
- Python2.X (85)-아비 짓
- R (34)-플래너 퍼스
현재 사용자 순위
- plannapus-2
- 아비 짓-1
- chyanog-1