當前位置:首頁 » 編程語言 » java方差

java方差

發布時間: 2022-08-05 13:09:50

『壹』 java中怎樣編寫計算方差的程序

import java.util.Scanner;
public class NumTest {
public static void main(String[] args){
double num=0;
Scanner s = new Scanner(System.in);
System.out.println("請輸入你需要計算的個數:");
int n = s.nextInt();
double[] list=new double[n];
for (int i = 1; i <= n; i++) {
System.out.println("請輸入第"+i+"個數:");
list[i-1]=s.nextDouble();
num+=list[i-1];
}
double mean=num/n;
double var=0;
for(double d:list){
var+=(d-mean)*(d-mean);
}
System.out.println("方差是:"+var/n);
}
}

『貳』 用java寫一個求平均數,方差的程序,有輸入界面,謝謝了

有輸入界面?用Scanner還是Frame?
暫定以集合的方式儲存吧。。。給你寫實現方法。。。 自己吧數據放入集合中。。。

public double meanValue(ArrayList allNumber) {
double value = 0;

for (int i = 0; i < allNumber.size(); i++) {

value += allNumber.get(i);

}

value /= allNumber.size();

return value;

}

public double VarianceValue(ArrayList allNumber) {
double value = 0;

double variance = meanValue(allNumber);

for (int i = 0; i < allNumber.size() {

double x = (allNumber.get(i) - variance) * (allNumber.get(i) - variance);

value += x;

}

value /= allNumber.size();

return value;

}

『叄』 數據處理,用C++或者Java編寫,求一組數的方差均值眾數標准差中位數等三十個數

1、完整代碼如下:

2、debug:VS2012

3、三種值的求值方法已經寫出。

4、C++的情況還是不要用數組了,有STL不用怎能說得過去。

#include<iostream>
#include<time.h>
#include<vector>
#include<map>
usingnamespacestd;
intrandNum(intrangeMin,intrangeMax)//隨機數生成函數
{
returnstatic_cast<double>(rand())/(RAND_MAX+1)*(rangeMax-rangeMin+1)+rangeMin;
}
doublecalcAverage(vector<int>vec)
{
intsum=0;
for(vector<int>::iteratorvIt=vec.begin();vIt!=vec.end();vIt++)
sum+=*vIt;
cout<<"ArrayvecT'saverageis:"<<sum/vec.size()<<endl;
returnsum/vec.size();
}
doublecalcVariance(doubleaverage,vector<int>vec)
{
doublevariance=0;
for(vector<int>::iteratorvIt=vec.begin();vIt!=vec.end();vIt++)
variance+=pow((*vIt-average),2);
cout<<"ArrayvecT'svarianceis:"<<variance/vec.size()<<endl;
returnvariance/vec.size();
}
intfindMode(vector<int>vec)
{
intmodeCnt=0;//判斷是復數/單數個眾數
map<int,int>findMode;
map<int,int>getMode;
for(vector<int>::iteratorvIt=vec.begin();vIt!=vec.end();vIt++)
++findMode[*vIt];
intmax=findMode.begin()->second;
for(map<int,int>::iteratormIt=findMode.begin();mIt!=findMode.end();mIt++)
max=max>=mIt->second?max:mIt->second;
//測試用輸出語句,沒事請自行注釋.
/*
for(map<int,int>::iteratormIt=findMode.begin();mIt!=findMode.end();mIt++)
cout<<mIt->first<<""<<mIt->second<<endl;
*/
//比較最大值與原map容器中的值,獲得的鍵值對插入到新的map容器中以計算數個眾數
for(map<int,int>::iteratormIt=findMode.begin();mIt!=findMode.end();mIt++)
{
if(mIt->second==max)
{
getMode.insert(*mIt);
modeCnt++;
}
}
if(modeCnt>1)
cout<<":"<<endl;
else
cout<<"Thereisonlyonemodeinthearray:"<<endl;
for(map<int,int>::iteratormIt=getMode.begin();mIt!=getMode.end();mIt++)
cout<<mIt->first<<""<<mIt->second<<endl;
return0;
}
intmain()
{
//本程序僅限整數,如果想修改成template,只要加上關鍵字和改一改就好了。
//Findaverage,variance,modeinarray(container)
//initializebyrandom.
srand(time(NULL));//隨機數種子,頭文件
vector<int>vecT;
for(inti=0;i!=30;i++)
vecT.push_back(randNum(1,30));
//initializebyinput
/*可以通過復制數據,數據會自動以空格判斷是否為第二個數,現在注釋掉
intvalue;
while(cin>>value)
vecT.push_back(value);
cin.clear();
*/
//callfunction
doubleaver=calcAverage(vecT);
calcVariance(aver,vecT);
findMode(vecT);
return0;
}

『肆』 Java函數中randomGaussian可以設置想要的期望跟方差嗎

應該是可以的吧。
你試一下吧。

『伍』 數據處理,用C++或者Java編寫,求一組數的方差均值眾數標准差中位數等

平均數、眾數、中位數這三個統計量的各自特點是:
平均數的大小與一組數據里的每個數據均有關系,其中任何數據的變動都會相應引起平均數的變動;眾數則著眼於對各數據出現的次數的考察,其大小隻與這組數據中的部分數據有關,當一組數據中有不少數據多次重復出現時,其眾數往往是我們關心的一種統計量;中位數則僅與數據排列位置有關,當一組數據從小到大排列後,最中間的數據為中位數(偶數個數據的最中間兩個的平均數)。因此某些數據的變動對它的中位數影響不大。
在同一組數據中,眾數、中位數和平均數也各有其特性:
(1)中位數與平均數是唯一存在的,而眾數是不唯一的;
(2)眾數、中位數和平均數在一般情況下是各不相等,但在特殊情況下也可能相等。
具體來說,平均數、眾數和中位數都是描述一組數據的集中趨勢的特徵數,但描述的角度和適用范圍有所不同。平均數的大小與一組數據里的每個數據均有關系,其中任何數據的變動都會引起平均數的相應變動;眾數著眼於對各數據出現的頻數的考察,其大小隻與這組數據中的部分數據有關;中位數則僅與數據的排列位置有關,某些數據的變動對中位數沒有影響,當一組數據中的個別數據變動較大時,可用它來描述其集中趨勢。
一般來說,平均數、中位數和鍾書都是一組數據的代表,分別代表這組數據的「一般水平」、「中等水平」和「多數水平」。平均數涉及所有的數據,中位數和眾數只涉及部分數據。它們互相之間可以相等也可以不相等,沒有固定的大小關系。
其實,它們三者有關聯也有區別。在一組數據中出現次數最多的數就是這組數據眾數,眾數和平均數一樣,也是描述一組數據集中趨勢的統計量,但它和平均數有以下兩點不同:一是平均數只是一個「虛擬」的數,即一組數據的和除以該組數據的個數所得的商,而眾數不是「虛擬」的數,是一組數據中出現次數最多的那個數據,是這組數據中真實存在的一個數據;二是平均數的大小與一組數據里的每個數據都有關系,任何一個數據的變動都會引起平均數大小的改變,而眾數則僅與一組數據的出現的次數有關,某些數據的變動對眾數沒有影響,所以在一組數據中,如果個別數據變動較大,但某個數據出現的次數最多,此時用該數據(即眾數)表示這組數據的「集中趨勢」比較合適。
中位數和平均數一樣,也是反映一組數據集中趨勢的一個統計量。平均數主要反映一組數據的一般水平,中位數則更好地反映了一組數據的中等水平。它和平均數有以下不同:一是平均數只是一個「虛擬」的數,而中位數並不完全是「虛擬」數,當一組數據有奇數個時,它就是該組數據順序排列後中間的那個數據,是這組數據中真實存在的一個數據;二是平均數的大小與一組數據里的每個數據都有關系,任何一個數據的變動都會引起平均數大小的改變,而中位數則僅與一組數據的排列位置有關,某些數據的變動對中位數沒有影響,所以當一組數據的個別數據偏大或偏小時,用中位數來描述該組數據的集中趨勢就比較合適。

『陸』 java 求 數組的方差

public static void main(String[] args) {
double[] array = { 1, 2, 3, 4, 5, 6 };
double ave = 0;
for (int i = 0; i < array.length; i++)
ave += array[i];
ave /= array.length;

double sum = 0;
for(int i = 0;i<array.length;i++)
sum += (array[i] - ave) * (array[i] - ave) ;
sum /= array.length;

System.out.println(sum);
}

『柒』 在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設計一個均值方差計算器。

上圖看到的就是界面。

整個程序,不算很復雜,文件IO+簡單界面+演算法

熱點內容
歐文5的配置是什麼 發布:2025-01-22 21:30:23 瀏覽:107
日誌存儲資料庫 發布:2025-01-22 21:30:07 瀏覽:473
gulp上傳cdn 發布:2025-01-22 21:27:34 瀏覽:202
emule文件夾 發布:2025-01-22 21:23:23 瀏覽:980
s7e什麼時候推送安卓7 發布:2025-01-22 21:20:59 瀏覽:202
狐狸的清白腳本分析 發布:2025-01-22 21:19:59 瀏覽:182
如何破解仿射密碼 發布:2025-01-22 21:13:53 瀏覽:80
百度視頻存儲 發布:2025-01-22 21:13:11 瀏覽:167
發吧傳媒源碼 發布:2025-01-22 21:07:52 瀏覽:952
shell腳本調用sql腳本 發布:2025-01-22 20:53:51 瀏覽:428