新しく発言する  EXIT  インデックスへ
高校数学「統計とコンピュータ」

  高校数学「統計とコンピュータ」 山中和義 2008/01/24 16:09:40 

高校数学「統計とコンピュータ」  返事を書く  ノートメニュー
山中和義 <drdlxujciw> 2008/01/24 16:09:40
プログラム言語での必要性もあろうかと思いサブルーチンをつくってみました。


!統計関数

!変数 N: 個数。※1以上
!配列 A(i): 対象の数値。※個数はNとする。

!作業変数は、i,j,ma,mb,s


!関数名をEXCEL準拠

FUNCTION SUM(N,A()) !総和
LET s=A(1)
FOR i=2 TO N
LET s=s+A(i)
NEXT i
LET SUM=s
END FUNCTION
FUNCTION FMAX(N,A()) !最大値(maximum)
LET s=A(1) !まず仮の最大値とする
FOR i=2 TO N
IF A(i)>s THEN LET s=A(i) !大きければ
NEXT i
LET FMAX=s
END FUNCTION
FUNCTION FMIN(N,A()) !最小値(minimum)
LET s=A(1)
FOR i=2 TO N
IF A(i)<s THEN LET s=A(i)
NEXT i
LET FMIN=s
END FUNCTION
SUB sort(N,A()) !降順に並べ替える
FOR i=1 TO N-1
FOR j=i+1 TO N
IF A(i)<A(j) THEN swap A(i),A(j)
NEXT j
NEXT i
END SUB

DEF AVERAGE(N,A())=SUM(N,A)/N !平均(mean) ※相加平均
FUNCTION GEOMEAN(N,A()) !相乗平均(幾何平均)
LET s=A(1)
FOR i=2 TO N
LET s=s*A(i)
NEXT i
LET GEOMEAN=s^(1/N)
END FUNCTION
FUNCTION HERMEAN(N,A()) !調和平均
LET s=1/A(1)
FOR i=2 TO N
LET s=s+1/A(i)
NEXT i
LET HERMEAN=N/s
END FUNCTION
FUNCTION MEDIAN(N,A()) !中央値(median)
CALL sort(N,A)
IF MOD(N,2)=0 THEN !偶数個なら
LET MEDIAN=(A(N/2)+A(N/2+1))/2
ELSE
LET MEDIAN=A((N+1)/2)
END IF
END FUNCTION
FUNCTION RANK(N,A(),m) !順位 ※変数 m: 順位を求める数値
LET s=1 !まず、1位とする
FOR i=1 TO N !全部調べる
IF A(i)>m THEN LET s=s+1 !大きければ順位を下げる
NEXT i
LET RANK=s
END FUNCTION

  つづき 山中和義 2008/01/24 16:12:39 
   └つづき2 山中和義 2008/01/24 16:13:40  (修正2回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。