도전
숫자 목록이 주어지면 목록의 모집단 표준 편차를 계산하십시오.
모집단 표준 편차를 계산하려면 다음 방정식을 사용하십시오.
입력
입력은 모든 형식 (목록, 문자열 등)으로 된 정수 목록입니다. 몇 가지 예 :
56,54,89,87
67,54,86,67
숫자는 항상 정수입니다.
STDIN 또는 함수 인수가 입력됩니다.
산출
출력은 부동 소수점 숫자 여야합니다.
규칙
내장 함수를 사용하여 표준 편차를 찾을 수 있습니다.
귀하의 답변은 전체 프로그램 또는 기능 일 수 있습니다.
예
10035, 436844, 42463, 44774 => 175656.78441352615
45,67,32,98,11,3 => 32.530327730015607
1,1,1,1,1,1 => 0.0
승리
가장 짧은 프로그램이나 기능이 승리합니다.
리더 보드
답변
답변
수학, 24 22 바이트
Mathematica에는 StandardDevi...
모집단 표준 편차가 아닌 표본 표준 편차를 계산 하는 내장 오 …가 있습니다.
그러나 만약 우리가 Variance
… 오 … 같은 거래를 사용한다면 어떨까요?
그러나 또 다른 관련 내장 기능이 있습니다.
CentralMoment[#,2]^.5&
예 🙂
이것은 22 바이트에서도 작동합니다.
Mean[(#-Mean@#)^2]^.5&
그리고 이것은 27입니다.
N@RootMeanSquare[#-Mean@#]&
답변
답변
kdb + , 3 바이트
dev
APL 편차 중 하나 는 이것을 내장형 으로 가져야했습니다.
시운전
q)dev 56, 54, 89, 87
16.53028
q)f:dev
q)f 10035, 436844, 42463, 44774
175656.8
q)f 45,67,32,98,11,3
32.53033
답변
Dyalog APL, 24 23 21 20 19 17 바이트
*∘.5∘M×⍨-M×M←+/÷≢
이것은 명명되지 않은 monadic 기능 트레인을 정의하며, 이는 다음 기능과 동일합니다.
{.5*⍨M(×⍨⍵)-M⍵×(M←{(+/⍵)÷≢⍵})⍵}
온라인에서 사용해보십시오 TryAPL에서 .
작동 원리
코드는 여러 열차로 구성됩니다.
M←+/÷≢
이것은 올바른 인수에 대해 ( 모든 요소의 합) 및 (길이)를 M
실행 한 다음 결과에 적용 (분할)하여 입력의 산술 평균을 반환 하는 모나 딕 3 트레인 (포크) 을 정의합니다 .+/
≢
÷
M×M
이것은 M
올바른 인수에 적용 되고 두 번째로 반복 ×
되며 결과에 (제품)을 적용 하여 μ 2를 반환 하는 또 다른 포크입니다 .
×⍨-(M×M)
이것은 이전에 설명한 산술 평균의 제곱을 계산 ×⍨
하고 올바른 인수에 (자체가있는 제품) 적용하고 마지막으로 적용되는 또 다른 포크입니다.-
하고 결과에 (차이) .
입력 (x 1 ,…, x N ) 의 경우이 함수는 (x 1 -μ 2 ,…, x N -μ 2 )를 반환합니다 .
*∘.5∘M
이 작성된 함수는 M
올바른 인수에 적용됩니다 *∘.5
. 후자는 올바른 인수 카레를 사용하여지도 입력 a
을 a*0.5
(square root of a
)에 적용합니다.
(*∘.5∘M)(×⍨-(M×M))
마지막으로,이 모나 딕 2 트레인 (위)은 오른쪽 기능을 먼저 적용한 다음 왼쪽을 결과에 적용하여 다음과 같이 표준 편차를 계산합니다.
답변
R, 41 40 39 36 30 28 바이트
암호
덕분에 비커 , 알렉스 A. 및 MickyT 많은 바이트.
cat(sd(c(v=scan(),mean(v))))
오래된 코드
v=scan();n=length(v);sd(v)/(n/(n-1))**0.5
m=scan();cat(sqrt(sum(mean((m-mean(m))^2))))
m=scan();cat(mean((m-mean(m))^2)^.5)
이는 모집단 표준 편차를 산출해야합니다.
답변
Pyth, 20 19 17 13 바이트
@.O^R2-R.OQQ2
4 바이트를 골라 낸 @FryAmTheEggman에게 감사합니다!
작동 원리
.OQ Compute the arithmetic mean of the input (Q).
-R Q Subtract the arithmetic mean of all elements of Q.
^R2 Square each resulting difference.
.O Compute the arithmetic mean of the squared differences.
@ 2 Apply square root.