import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.Math.*;
import java.util.*;
import java.math.*;
import java.text.*;
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    }
    static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    }
    static double ave(double[] tag) {
        return sum(tag) / tag.length;
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.lang.Math.*; Math.* java.lang import java.util.*; util.* java import java.math.*; math.* java import java.text.*; text.* java public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    }
    static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    }
    static double ave(double[] tag) {
        return sum(tag) / tag.length;
    }
} Main public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) NumberFormat nf = NumberFormat.getInstance(); nf NumberFormat.getInstance() NumberFormat.getInstance NumberFormat nf.setMaximumFractionDigits(8) nf.setMaximumFractionDigits nf 8 nf.setGroupingUsed(false) nf.setGroupingUsed nf false while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        } true {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        } int count = Integer.parseInt(br.readLine()); count Integer.parseInt(br.readLine()) Integer.parseInt Integer br.readLine() br.readLine br if(count == 0)break; count == 0 count 0 break; String[] line = br.readLine().split(" "); line br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " double[] points = new double[count]; points new double[count] count for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]); int i=0; int i=0; i 0 i<count i count i++ i++ i points[i] = Double.parseDouble(line[i]); points[i] = Double.parseDouble(line[i]) points[i] points i Double.parseDouble(line[i]) Double.parseDouble Double line[i] line i double sample = 0; sample 0 double ave_d = ave(points); ave_d ave(points) ave points double ans = 0; ans 0 for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2)); int i=0; int i=0; i 0 i<points.length i points.length points points.length i++ i++ i sample += (Math.pow((points[i] - ave_d),2)); sample += (Math.pow((points[i] - ave_d),2)) sample (Math.pow((points[i] - ave_d),2)) Math.pow Math (points[i] - ave_d) points[i] points i ave_d 2 ans = Math.sqrt(sample / points.length) ans Math.sqrt(sample / points.length) Math.sqrt Math sample / points.length sample points.length points points.length System.out.println(nf.format(ans)) System.out.println System.out System System.out nf.format(ans) nf.format nf ans String[] args args static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    } sum {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    } double sum = 0; sum 0 for(int i=0;i<tag.length;i++)
            sum += tag[i]; int i=0; int i=0; i 0 i<tag.length i tag.length tag tag.length i++ i++ i sum += tag[i]; sum += tag[i] sum tag[i] tag i return sum; sum double[] tag tag static double ave(double[] tag) {
        return sum(tag) / tag.length;
    } ave {
        return sum(tag) / tag.length;
    } return sum(tag) / tag.length; sum(tag) / tag.length sum(tag) sum tag tag.length tag tag.length double[] tag tag public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    }
    static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    }
    static double ave(double[] tag) {
        return sum(tag) / tag.length;
    }
} public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    }
    static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    }
    static double ave(double[] tag) {
        return sum(tag) / tag.length;
    }
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.Math.*;
import java.util.*;
import java.math.*;
import java.text.*;
public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        NumberFormat nf = NumberFormat.getInstance();
        nf.setMaximumFractionDigits(8);
        nf.setGroupingUsed(false);
        while(true) {
            int count = Integer.parseInt(br.readLine());
            if(count == 0)break;
            String[] line = br.readLine().split(" ");
            double[] points = new double[count];
            //longの配列に格納
            for(int i=0;i<count;i++) points[i] = Double.parseDouble(line[i]);
            //標準偏差計算
            double sample = 0;
            double ave_d = ave(points);
            double ans = 0;
            for(int i=0;i<points.length;i++)
                sample += (Math.pow((points[i] - ave_d),2));
            ans = Math.sqrt(sample / points.length);
            System.out.println(nf.format(ans));
        }
    }
    static double sum(double[] tag) {
        double sum = 0;
        for(int i=0;i<tag.length;i++)
            sum += tag[i];
        return sum;
    }
    static double ave(double[] tag) {
        return sum(tag) / tag.length;
    }
}