java標准差
『壹』 java調用方法求平均值和標准差的問題。
Populationstandard deviation:
如是總體(即估算總體方差),根號內除以n MySql對應的函數是STD(對應excel函數:STDEVP);
Samplestandard deviation:
如是抽樣(即估算樣本方差),根號內除以(n-1)MYSql對應的函數是STDDEV_SAMP(對應excel函數:STDEV);
『貳』 用JAVA計算學生成績及標准差
不知道你什麼意思 但是給你個思路寫一個學生bean 裡面是對你所說的那些數據的get和set方法然後寫一個類 裡面一個靜態方法或者普通方法返回是一個集合是對你指定路徑的一個文本內容的提取然後在提取的時候用寫好的bean進行封裝裝入集合當中返回出來 在輸出 整個過程就是這樣的希望能幫助到你
『叄』 在Java中怎麼求方差和標准差
Java求方差和標准差:
public class GetAverageandStandardDevition {
private int[] array = new int[10];
private int num = 10;
public int getRandomDigit() {
return (int) (Math.random() * 1000);
}
public void getTargetDigit() {
for (int i = 0; i < num; i++) {
array[i] = getRandomDigit();
System.out.println(array[i]);
}
}
//方差
public double getAverage(){
int sum = 0;
for(int i = 0;i < num;i++){
sum += array[i];
}
return (double)(sum / num);
}
//標准差
public double getStandardDevition(){
double sum = 0;
for(int i = 0;i < num;i++){
sum += Math.sqrt(((double)array[i] -getAverage()) * (array[i] -getAverage()));
}
return (sum / (num - 1));
}
public static void main(String[] args) {
GetAverageandStandardDevition gcs = new GetAverageandStandardDevition();
gcs.getTargetDigit();
System.out.println(gcs.getAverage() + " " + gcs.getStandardDevition());
}
『肆』 java 標准差
因為是java 的double類型,可以使用 NubmerFormat進行格式化輸出的
『伍』 java 怎樣計算標准差
僅供參考
『陸』 1,輸入10個數(使用for循環或do-while) 2,求出其中最大值,最小值,均值,標准差 用Java寫
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println("請輸入10個double類型的數,並以空格隔開:");
Scannerinput=newScanner(System.in);
double[]arr=newdouble[10];
for(inti=0;i<10;i++){
arr[i]=input.nextDouble();
}
System.out.println(min(arr));
System.out.println(max(arr));
System.out.println("平均數:"+avg(arr));
System.out.println(standard(arr));
}
/**
*標准差
*/
publicstaticStringstandard(double[]arr){
doublesum=0;
doubleavg=avg(arr);
for(inti=0;i<arr.length;i++){
sum=sum+Math.pow((arr[i]-avg),2);
}
return"標准差:"+Math.sqrt(sum/arr.length);
}
/**
*平均值
*/
publicstaticdoubleavg(double[]arr){
doublesum=0;
for(doublea:arr){
sum=sum+a;
}
returnsum/arr.length;
}
/**
*最大值
*/
publicstaticStringmax(double[]arr){
Arrays.sort(arr);
return"最大值:"+arr[arr.length-1];
}
/**
*最小值
*/
publicstaticStringmin(double[]arr){
Arrays.sort(arr);
return"最小值:"+arr[0];
}
}
『柒』 一個Java題目
import java.util.Arrays;
import java.util.Random;
/**
* 1.方差s^2=[(x1-x)^2+(x2-x)^2+......(xn-x)^2]/n
* 2.標准差=方差的算術平方根
*
* @author ww
*
*/
public class Test {
public static void main(String[] args) {
int[] arr = new int[100];
Random r = new Random();
int sum = 0;
int sum_deviation = 0;
for(int i=0;i<arr.length;i++){
arr[i] = r.nextInt(100)+1;
sum += arr[i];
}
double avg = sum*1.00/arr.length;
for(int i=0;i<arr.length;i++){
sum_deviation += Math.pow(arr[i]-avg,2);
}
double standardDeviation = Math.sqrt(sum_deviation/arr.length);
System.out.println("平均值:"+avg);
System.out.println("標准差:"+standardDeviation);
Arrays.sort(arr);
for(int i=arr.length-1;i>=0;i--){
System.out.print(arr[i]+" ");
}
}
}
『捌』 如何用java程序導入表格數據,並且求出每列的標准差,求代碼。越詳細越好。
jar包下載地址:http://files.cnblogs.com/gmq/poi.rar
下載完把rar改為jar,參考別人的,呵呵
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class ReadExcel {
public static void main(String[] args) throws Exception {
File file = new File("src/test.xls");
String[][] result = getData(file, 0);
getStd(result);
}
public static double[] getStd(String[][] result) {
int rowLength = result.length;
int colLength = result[0].length;
int[][] marx = new int[rowLength][colLength - 1];
// 將字元串數組轉換為double數組,註:字元串本身要為數字哦
for (int i = 0; i < rowLength; i++) {
for (int j = 0; j < colLength - 1; j++) {
marx[i][j] = new Integer(result[i][j]);
}
}
double[] sum = new double[marx[0].length];
double[] avg = new double[marx[0].length];
double[] std = new double[marx[0].length];
double temp = 0;
for (int j = 0; j < marx[0].length; j++) {
for (int i = 0; i < marx.length; i++) {
sum[j] += marx[i][j];
avg[j] = sum[j] / marx.length;
temp = marx[i][j] - avg[j];
temp = Math.pow(temp, 2) / marx.length;
std[j] = Math.pow(temp, 0.5);
}
}
System.out.println("表格數據:"+rowLength+" 行, "+(colLength-1)+" 列");
System.out.println("計算結果為");
System.out.println("sum = ");
printArray(sum);
System.out.println("\navg = ");
printArray(avg);
System.out.println("\nstd = ");
printArray(std);
return std;
}
/**
* 輸出
*/
public static void printArray(double[] a) {
for (double i : a) {
System.out.print(i + " ");
}
}
/**
*
* 讀取Excel的內容,第一維數組存儲的是一行中格列的值,二維數組存儲的是多少個行
*
* @param file
* 讀取數據的源Excel
* @param ignoreRows
* 讀取數據忽略的行數,比喻行頭不需要讀入 忽略的行數為1
* @return 讀出的Excel中數據的內容
* @throws FileNotFoundException
* @throws IOException
*/
public static String[][] getData(File file, int ignoreRows)
throws FileNotFoundException, IOException {
List<String[]> result = new ArrayList<String[]>();
int rowSize = 0;
BufferedInputStream in = new BufferedInputStream(new FileInputStream(
file));
// 打開HSSFWorkbook
POIFSFileSystem fs = new POIFSFileSystem(in);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFCell cell = null;
for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) {
HSSFSheet st = wb.getSheetAt(sheetIndex);
// 第一行為標題,不取
for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) {
HSSFRow row = st.getRow(rowIndex);
if (row == null) {
continue;
}
int tempRowSize = row.getLastCellNum() + 1;
if (tempRowSize > rowSize) {
rowSize = tempRowSize;
}
String[] values = new String[rowSize];
Arrays.fill(values, "");
boolean hasValue = false;
for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) {
String value = "";
cell = row.getCell(columnIndex);
if (cell != null) {
// 注意:一定要設成這個,否則可能會出現亂碼
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
switch (cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
value = cell.getStringCellValue();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if (HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
if (date != null) {
value = new SimpleDateFormat("yyyy-MM-dd")
.format(date);
} else {
value = "";
}
} else {
value = new DecimalFormat("0").format(cell
.getNumericCellValue());
}
break;
case HSSFCell.CELL_TYPE_FORMULA:
// 導入時如果為公式生成的數據則無值
if (!cell.getStringCellValue().equals("")) {
value = cell.getStringCellValue();
} else {
value = cell.getNumericCellValue() + "";
}
break;
case HSSFCell.CELL_TYPE_BLANK:
break;
case HSSFCell.CELL_TYPE_ERROR:
value = "";
break;
case HSSFCell.CELL_TYPE_BOOLEAN:
value = (cell.getBooleanCellValue() == true ? "Y"
: "N");
break;
default:
value = "";
}
}
if (columnIndex == 0 && value.trim().equals("")) {
break;
}
values[columnIndex] = rightTrim(value);
hasValue = true;
}
if (hasValue) {
result.add(values);
}
}
}
in.close();
String[][] returnArray = new String[result.size()][rowSize];
for (int i = 0; i < returnArray.length; i++) {
returnArray[i] = (String[]) result.get(i);
}
return returnArray;
}
/**
*
* 去掉字元串右邊的空格
*
* @param str
* 要處理的字元串
* @return 處理後的字元串
*/
public static String rightTrim(String str) {
if (str == null) {
return "";
}
int length = str.length();
for (int i = length - 1; i >= 0; i--) {
if (str.charAt(i) != 0x20) {
break;
}
length--;
}
return str.substring(0, length);
}
}
『玖』 如何使用JAVA來計算標准偏差
按標准差的公式計算
先計算平均值,再拿樣本和平均值對比
~~~~~~~
『拾』 急求:用java語言編寫隊列中每一列的標准差,求高手解救
package 回答;
import java.text.DecimalFormat;
public class BiaoZC {
public static void main(String[] args){
int[][] a = {{1 ,3 ,9 ,5 ,1},
{5 ,6 ,4 ,5 ,4},
{7 ,0 ,7 ,1 ,0},
{1 ,0 ,3 ,0 ,5},
{5 ,4 ,2 ,9 ,7},
{6 ,7 ,3 ,9 ,2},
{4 ,4 ,8 ,6 ,0},
{5 ,4 ,3 ,6 ,5},
{7 ,6 ,8 ,5 ,0},
{2 ,1 ,0 ,0 ,2},
{6 ,6 ,8 ,8 ,5},
{6 ,7 ,6 ,8 ,2},
{6 ,3 ,6 ,7 ,5},
{2 ,0 ,6 ,7 ,2},
{4 ,2 ,0 ,8 ,0},
{3 ,0 ,0 ,8 ,2},
{5 ,4 ,4 ,4 ,4},
{6 ,7 ,8 ,9 ,0},
{3 ,4 ,6 ,5 ,1},
{2 ,4 ,3 ,4 ,5},
{3 ,1 ,8 ,6 ,0},
{4 ,5 ,7 ,9 ,2},
{2 ,1 ,5 ,4 ,0},
{1 ,7 ,2 ,9 ,0},
{6 ,6 ,6 ,8 ,4},
{5 ,0 ,0 ,8 ,0},
{7 ,3 ,2 ,8 ,1},
{9 ,8 ,6 ,7 ,6},
{9 ,7 ,2 ,4 ,6},
{6 ,6 ,4 ,8 ,5},
{7 ,8 ,9 ,8 ,0},
{6 ,4 ,0 ,0 ,7},
{7 ,5 ,0 ,4 ,0},
{8 ,0 ,4 ,8 ,0},
{4 ,3 ,1 ,2 ,5},
{7 ,4 ,9 ,9 ,4},
{8 ,5 ,1 ,4 ,1},
{5 ,5 ,0 ,8 ,6},
{7 ,0 ,0 ,8 ,4},
{6 ,2 ,9 ,2 ,4},
{8 ,0 ,2 ,7 ,0},
{5 ,0 ,2 ,7 ,2},
{7 ,2 ,0 ,9 ,0},
{5 ,0 ,2 ,8 ,3},
{7 ,0 ,8 ,5 ,0},
{2 ,4 ,6 ,7 ,0}
};
double var = 0,sum = 0,m;
String s,ss;
DecimalFormat format = new DecimalFormat("#0.00");
for(int i=0;i<a[0].length;i++){
for(int j=0;j<a.length;j++)
sum += a[j][i];
m = sum/a.length;
for(int j=0;j<a.length;j++)
var += Math.pow(a[j][i]-m,2);
s = format.format(m);
ss = format.format(Math.sqrt(var));
System.out.println("第"+(i+1)+"列的平均數為:"+s);
System.out.println("第"+(i+1)+"列的方差為:"+ss);
}
}
}
你可以從文件讀取這個數據,剩下的自己去做吧