웹마스터 팁
page_full_width">
기초 통계 프로그램 for 귀차니스트;;
2002.08.10 19:34
http://jukiyo.net/data/sta.php험험;;오늘은 굉장히 쓸데없는 프로그램을 하나 만들어봤습니다...이름하여"기초 통계 프로그램"입니다;;
아주 간단한 for문으로 평균,편차,분산,표준편차를 구합니다;;
이걸 만든 동기가 중요한데 방학숙제인 문제집 풀기를 간단히 하기 위해서입니다;;;중 3 수학 교과서에 통계단원이 나오는데 이거 하나면 OK입니다;;;(사용 후 머리가 나빠졌다든가 따위는 사용자 책임입니다;;)계산기를 써도 되지만 아시다시피 엄청난 노가다;여서 강좌 겸해서 만들었습니다.
주석이 상제하게 붙어 있어 그걸로도 이해가 기실 겁니다...소스 나갑니다;;
*파일첨부는 안했으니 사용하시려면 복사와 붙여넣기로...
<?
//기초 통계 시스템-_-a
//자료 입력부
$data[] = 18;
$data[] = 23;
$data[] = 23;
$data[] = 17;
$data[] = 24;
$data[] = 21;
//무한히 늘려도 됨;;
//실행부
$datatotal = sizeof($data); //배열(자료)의 수 구함
if(!$datatotal) { //자료가 없음;;
echo("자료가 없습니다!");
exit(); //해석을 끝내버린다
} else {
if($datatotal == 1) { //자료가 하나뿐일때
echo("자료가 하나뿐입니다!<p>"); //에러메시지를 내보내고 프로그램은 계속 실행한다
}
echo("<b>자료: ");
for($i = 1;$i <= $datatotal;$i++) { //총합을 구하는 for문
$j = $i - 1; //실제 배열의 값은 루프값보다 1 적다;
$total += $data[$j];
$str .= "$data[$j], "; //바로 echo문을 쓰지 않고 변수로 저장한다!!!
}
$str .= "(총 ${datatotal}개)"; //총 갯수 변수에 추가
$str = str_replace(", ("," (",$str); //맨뒤의 보기싫은 , 떼어버림
$average = $total / $datatotal; //평균 계산
$average = sprintf("%.3f",$average); //소수점 아래 3자리까지
echo("$str</b><p>평균: $average<br>");
for($i = 1;$i <= $datatotal;$i++) { //다시for문을 돈다;;;
$j = $i - 1; //이번 for문에서는 편차와 분산을 구한다.
$del = $average - $data[$j]; //편차 구함
$str2 .= "$data[$j]: $del, " ; //편차 문자열 합함
$temp = pow($del,2); //편차제곱;;
$dis += $temp; //편차제곱을 다 합해 분산 구함
}
$dis = $dis / $datatotal; //역시 자료수로 나눠준다
$dis = sprintf("%.3f",$dis); //역시 소수점 아래 3자리까지
$str2 .= "a"; //,를 떼기위해 맨뒤에 임의의 특징적인 문자열을 넣어준다
$str2 = str_replace(", a","",$str2); //역시 ,와 아까 임의의 문자열 떼어버림
echo("분산: $dis(편차 = $str2)<br>표준편차는 분산에 루트");
}
//여기까지
/*****************************************/
/* 제작자: TheMics(themics@hotmail.com */
/* 사용은 자유입니다~ */
/*****************************************/
아주 간단한 for문으로 평균,편차,분산,표준편차를 구합니다;;
이걸 만든 동기가 중요한데 방학숙제인 문제집 풀기를 간단히 하기 위해서입니다;;;중 3 수학 교과서에 통계단원이 나오는데 이거 하나면 OK입니다;;;(사용 후 머리가 나빠졌다든가 따위는 사용자 책임입니다;;)계산기를 써도 되지만 아시다시피 엄청난 노가다;여서 강좌 겸해서 만들었습니다.
주석이 상제하게 붙어 있어 그걸로도 이해가 기실 겁니다...소스 나갑니다;;
*파일첨부는 안했으니 사용하시려면 복사와 붙여넣기로...
<?
//기초 통계 시스템-_-a
//자료 입력부
$data[] = 18;
$data[] = 23;
$data[] = 23;
$data[] = 17;
$data[] = 24;
$data[] = 21;
//무한히 늘려도 됨;;
//실행부
$datatotal = sizeof($data); //배열(자료)의 수 구함
if(!$datatotal) { //자료가 없음;;
echo("자료가 없습니다!");
exit(); //해석을 끝내버린다
} else {
if($datatotal == 1) { //자료가 하나뿐일때
echo("자료가 하나뿐입니다!<p>"); //에러메시지를 내보내고 프로그램은 계속 실행한다
}
echo("<b>자료: ");
for($i = 1;$i <= $datatotal;$i++) { //총합을 구하는 for문
$j = $i - 1; //실제 배열의 값은 루프값보다 1 적다;
$total += $data[$j];
$str .= "$data[$j], "; //바로 echo문을 쓰지 않고 변수로 저장한다!!!
}
$str .= "(총 ${datatotal}개)"; //총 갯수 변수에 추가
$str = str_replace(", ("," (",$str); //맨뒤의 보기싫은 , 떼어버림
$average = $total / $datatotal; //평균 계산
$average = sprintf("%.3f",$average); //소수점 아래 3자리까지
echo("$str</b><p>평균: $average<br>");
for($i = 1;$i <= $datatotal;$i++) { //다시for문을 돈다;;;
$j = $i - 1; //이번 for문에서는 편차와 분산을 구한다.
$del = $average - $data[$j]; //편차 구함
$str2 .= "$data[$j]: $del, " ; //편차 문자열 합함
$temp = pow($del,2); //편차제곱;;
$dis += $temp; //편차제곱을 다 합해 분산 구함
}
$dis = $dis / $datatotal; //역시 자료수로 나눠준다
$dis = sprintf("%.3f",$dis); //역시 소수점 아래 3자리까지
$str2 .= "a"; //,를 떼기위해 맨뒤에 임의의 특징적인 문자열을 넣어준다
$str2 = str_replace(", a","",$str2); //역시 ,와 아까 임의의 문자열 떼어버림
echo("분산: $dis(편차 = $str2)<br>표준편차는 분산에 루트");
}
//여기까지
/*****************************************/
/* 제작자: TheMics(themics@hotmail.com */
/* 사용은 자유입니다~ */
/*****************************************/
댓글 3
-
강혜정
2002.08.31 12:48
-
토끼군
2002.09.07 15:32
아예 함수를 만듭시다. -_-;;
_는 공백입니다;;
////////////////////////////////
// 합계
function total($arr)
{
____$result = 0;
____while(list($key,$value) = each($arr))
________$result += $value;
____return $result;
}
// 평균
function average($arr)
{
____result sum($arr)/count($arr);
}
// 분산
function variance($arr)
{
____$avg = average($arr);
____$result = 0;
____while(list($key,$value) = each($arr))
________$result += ($value - $avg) * ($value - $avg);
____return $result/count($arr);
}
// 표준편차
function standard($arr)
{
____return sqrt(variance($arr));
}
////////////////////////////////
간단합죠. -_-;;; -
에지
2007.07.05 15:51
// 평균
function avg() {
$arg = func_get_args();
$total_amount = 0;
for($i=0; $i<count($arg); $i++) $total_amount += $arg[$i];
return ($total_amount/count($arg));
}
// 합계
function sum() {
$arg = func_get_args();
$total_amount = 0;
for($i=0; $i<count($arg); $i++) $total_amount += $arg[$i];
return $total_amount;
}
이런 방법도 좋죠..
사용법 : <? print sum(1,2,3,4,5,6,7,8,9); ?>
계속 추가해도 되지요 [퍽]
제목 | 글쓴이 | 날짜 |
---|---|---|
[허접] implode() 함수로 배열을 변수로! | Myzzix | 2002.08.23 |
[허접] rand() 함수를 이용한 뒤죽박죽 날짜 출력 [5] | Myzzix | 2002.08.23 |
파일하나로 만드는 한줄 메모장(테마기능 포함) [8] | Mr. JH | 2002.08.22 |
PHP의 제어구조 [2] | Mr. JH | 2002.08.22 |
PHP 시간관련 함수 [3] | Mr. JH | 2002.08.22 |
PHP에서 사용하는 간단하지만 중요한 MySQL함수들 [3] | Mr. JH | 2002.08.22 |
꼭 알아야 하는 4가지 쿼리문 | Mr. JH | 2002.08.22 |
테이블 생성시 데이터베이스의 타입설정 [2] | Mr. JH | 2002.08.22 |
누구나 만들수있는 게시판 [글삭제, 수정 부분]
[4]
![]() | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [글보기 view.php 부분] [1] | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [글목록 list.php 부분] [6] | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [schema, write, write_ok] [10] | Mr. JH | 2002.08.21 |
제로 카운터 숫자 조정하기 [8] | 이주경 | 2002.08.21 |
Print 이건또 뭐지? 사이트 찾다보니 있던데..^^ [13] | ZipShin | 2002.08.16 |
기초 통계 프로그램 for 귀차니스트;; [3] | TheMics | 2002.08.10 |
쓸모있는 PHP Tip (다 알구 있을런지 모르겠네여..^^) [1] | 이삐아이(체리) | 2002.08.09 |
TheMics의 예제와 함께하는 PHP기초(中) [1] | TheMics | 2002.08.05 |
Apache나 IIS등 웹서버 설치 않하고도 PHP 실행해보는 방법 [9] | 차카게살자 | 2002.08.02 |
[초간단 팁] 프로그래밍 스타일, 절대 경로 [8] | )OsE= | 2002.08.02 |
[Header 이용하기 #3] 페이지 이동 [2] | )OsE= | 2002.08.01 |
그래도 통계는 싫어요; 확률과 경우의 수, 통계, 도형들은 수학에서 없어져야할 존재.-_-
그냥 방정식을 달라고요..ㅠㅠ