검색결과 리스트
글
2월1일에 다리가 부러진 후... 이제 겨우 8주가 지났네요. 16주 진단이니까... 아직 8주가 더 남았습니다.ㅠㅠ 단지 다리하나가 더 부러졌을 뿐인데도 많은 부분이 불편하네요..ㅠㅠ 특히 그 좋아하는 블로그 활동도 못하고, 아름다운 알콜 습취도 못하네요...ㅠㅠ
그러다 문득, 한가지 떠로는 생각이 있어서, 배열없이 평균을 구하는 것에 대해 이야기를 할까합니다.^^ 보통 C/C++를 공부하다보면 배열을 배우는 단계에서 배열의 합과 평균을 구하는 예제를 통해 배열을 배우게 되는데요. 이번엔 배열을 구하지 않고 평균을 구하는 예제를 다뤄볼까 합니다.
먼저 평균을 구하기 위해 입력되는 n 번째 숫자를
이라고 하구요. n 번째까지의 평균을
이라고 하죠.
그러면, 평균은 다들 아는데로
n번째까지의 합에서 갯수를 나누게 됩니다. 이 식을 살짝 변형하면
n번째 숫자와 (n-1)번째까지의 합과의 합에서 전체 개수(n)를 나누게 되죠 이때... (n-1)번째까지의 합이라는 것은
이렇게 다시 (n-1)번째까지의 평균에 (n-1)을 곱해도 됩니다. 이제 n번째까지의 평균은
이렇게, 이전 평균에 (n-1)을 곱하고, 현재 숫자를 더해서 n으로 나누면 된다는 것을 알 수 있죠. 이 마지막 수식을 C로 바꾸면 되겠네요^^
음... //calculate sum and average 라고 주석을 친 부분을 보면
sum += inputNum 은 누적해서 입력한 숫자를 저장하고
그 다음 식이 결론이죠. 좌변의 변수는 C 문법상 항상 이전 값이니까
average = ( (n-1)*average + inputNum )/n;
이거면 끝인거죠. 나머진 출력하는 부분과 입력받는 부분이니까요. 이렇게 꾸민 결과를 확인해보면
입력을 가할때마다, 평균값을 계산해 주고 있다는 것을 확인할 수 있습니다.^^
그러다 문득, 한가지 떠로는 생각이 있어서, 배열없이 평균을 구하는 것에 대해 이야기를 할까합니다.^^ 보통 C/C++를 공부하다보면 배열을 배우는 단계에서 배열의 합과 평균을 구하는 예제를 통해 배열을 배우게 되는데요. 이번엔 배열을 구하지 않고 평균을 구하는 예제를 다뤄볼까 합니다.
먼저 평균을 구하기 위해 입력되는 n 번째 숫자를
이라고 하구요. n 번째까지의 평균을
이라고 하죠.
그러면, 평균은 다들 아는데로
n번째까지의 합에서 갯수를 나누게 됩니다. 이 식을 살짝 변형하면
n번째 숫자와 (n-1)번째까지의 합과의 합에서 전체 개수(n)를 나누게 되죠 이때... (n-1)번째까지의 합이라는 것은
이렇게 다시 (n-1)번째까지의 평균에 (n-1)을 곱해도 됩니다. 이제 n번째까지의 평균은
이렇게, 이전 평균에 (n-1)을 곱하고, 현재 숫자를 더해서 n으로 나누면 된다는 것을 알 수 있죠. 이 마지막 수식을 C로 바꾸면 되겠네요^^
음... //calculate sum and average 라고 주석을 친 부분을 보면
sum += inputNum 은 누적해서 입력한 숫자를 저장하고
그 다음 식이 결론이죠. 좌변의 변수는 C 문법상 항상 이전 값이니까
average = ( (n-1)*average + inputNum )/n;
이거면 끝인거죠. 나머진 출력하는 부분과 입력받는 부분이니까요. 이렇게 꾸민 결과를 확인해보면
입력을 가할때마다, 평균값을 계산해 주고 있다는 것을 확인할 수 있습니다.^^
'The Robot > Theory' 카테고리의 다른 글
[Visual Basic] 2. 지겹지만 알고가야할 각 연산자의 의미 (18) | 2012/06/25 |
---|---|
[Visual Basic] 1. 비쥬얼 베이직이랑 친해지기 (28) | 2012/04/25 |
저역통과필터와 고역통과필터를 C로 구현 (16) | 2011/06/01 |
[C/C++] 배열을 사용하지 않고 평균 구하기 (6) | 2011/03/25 |
안티와인드업 Anti-Windup (6) | 2011/03/15 |
서보제어 Servo Control (4) | 2011/03/14 |
정보를 담고 있는 좌표계에 회전행렬을 적용하는 방법 (20) | 2011/01/18 |
[엑셀 연재] 7. 몇몇 유용한 함수들 (4) | 2010/12/03 |
요건 예전에 터보C를 해봐서 이해가 됩니다.. 이런날도 다있네요 ㅋㅋ
엇 순간 저도 방갑네요 터보C ㅎㅎ
음.. 그나저나 4달을 제대로 운동도 못하시면
다른쪽 다리도 근력이 약해서 완전 100% 회복되는데는 적어도 반년은 소요되실것 같네요 ㅠ.ㅠ
음.. 대개는 sum과 count를 가지고 avg만 계산해서 출력했었는데
위와 같은 방법으로 하면 나중에는 오차가 좀 생기지 않을까 걱정이 되네요.
그러게요. 걷는법도 잊어버릴것 같습니다. 그나저나 이번 포스팅은 이상하네요 ㅋㅋㅋ 제목은 배열없이가 아니라 현재의 합을 모른상태에서라고 해야할듯 하네요 푸하하. 이런 창피 ㅠㅠ 뭐 부족하지만 뭐 그냥 이런것도 있지않을까하는 소심한 의견이라고 해두죠 뭐 ㅋㅋ
사실 지금껏 몇개의 샘플(n개)로 평균(m)을 구하였으니 현재까지의 합(n*m)도 아는것이죠.
이것보다 조금더 복잡하긴 하지만, 이런식으로 분산도 구할수 있답니다 ^^
그렇죠^^... 문득 든 생각을 그저 포스팅했는데.. 이번 포스팅은 해놓고 보니 별로 마음에 안들어요...ㅠㅠ 그리고 분산도 생각해보니 말씀하신데로 가능하겠는걸요.. ㅎㅎ