; 6.2.scm ; 2024-10-12 ; $Id: 6.2.scm 1.1 2024/11/02 12:38:38 s Exp $ ; e_x : E(x) ; var_x : var(x) (use gauche.array) ; procedure (define sum (lambda (x) (fold + 0 x))) ; input (define n 6) (define x (tabulate-array (shape 0 n 0 n)(^(i j) (* (+ i 1) (+ j 1))))) ; calculating (define m (array-size x)) (define sum_x (sum (array->list x))) (define e_x (exact->inexact (/ sum_x m))) (define sum_v (sum (map (lambda (x) (expt (- x e_x) 2)) (array->list x)))) (define var_x (/ sum_v m)) ; output (print '6.2.scm) (format #t "~6@a ~6@a ~6@a ~10@a\n" 'x "E(x)" "x-E(x)" "(x-E(x))^2") (print '-------------------------------) (for-each (lambda (x1) (format #t "~6d ~6,2f ~6,2f ~10,2f\n" x1 e_x (- x1 e_x) (expt (- x1 e_x) 2))) (array->list x) ) (print '-------------------------------) (format #t "~10a ~6d\n" "m= " m) (format #t "~10a ~6,2f\n" "E(x)=" e_x) (format #t "~10a ~6,2f\n" "var(x)=" var_x) ; end