문제

NIX 시스템에서 찾을 것으로 예상되는 도구를 사용하여 (실제로 원한다면 MSDOS도 괜찮습니다), 숫자 세트의 평균을 계산하는 가장 쉬운/가장 빠른 방법은 무엇입니까? 스트림이나 파일로 줄 당?

도움이 되었습니까?

해결책

어색한

awk '{total += $1; count++ } END {print total/count}'

다른 팁

awk ' { n += $1 }; END { print n / NR }'

이것은 합계를 축적합니다 n, 그런 다음 항목 수로 나눕니다 (NR = 레코드 수).

정수 또는 현실을 위해 작동합니다.

사용 숫자 유니스 :

average 1 2 3 4 5 6 7 8 9
perl -e 'while (<>) { $sum += $_; $count++ } print $sum / $count, "\n"';

PowerShell에서는 그렇습니다

get-content .\meanNumbers.txt | measure-object -average

물론, 그것은 장점 구문입니다. 별명을 사용하여 입력 한 경우

gc .\meanNumbers.txt | measure-object -a

"st"사용 (https://github.com/nferraz/st):

$ st numbers.txt
N      min   max    sum    mean  sd
10.00  1.00  10.00  55.00  5.50  3.03

개별 통계를 볼 수있는 옵션을 지정하십시오.

$ st numbers.txt --mean
5.5

(면책 조항 : 나는이 도구를 썼다 :))

펄.

@a = <STDIN>;

for($i = 0; $i < #@a; $i++)
{
   $sum += $a[i];
}

print $a[i]/#@a;

경고 emptor : 내 구문은 약간 까다로울 수 있습니다.

루비 원 라이너

cat numbers.txt | ruby -ne 'BEGIN{$sum=0}; $sum=$sum+$_.to_f; END{puts $sum/$.}'

원천

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top