㈠ 急求:用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);
}
}
}
你可以從文件讀取這個數據,剩下的自己去做吧
㈡ Java救命
java很少用來做圖形界面啊
㈢ 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);
}
㈣ 數據處理,用C++或者Java編寫,求一組數的方差均值眾數標准差中位數等
平均數、眾數、中位數這三個統計量的各自特點是:
平均數的大小與一組數據里的每個數據均有關系,其中任何數據的變動都會相應引起平均數的變動;眾數則著眼於對各數據出現的次數的考察,其大小隻與這組數據中的部分數據有關,當一組數據中有不少數據多次重復出現時,其眾數往往是我們關心的一種統計量;中位數則僅與數據排列位置有關,當一組數據從小到大排列後,最中間的數據為中位數(偶數個數據的最中間兩個的平均數)。因此某些數據的變動對它的中位數影響不大。
在同一組數據中,眾數、中位數和平均數也各有其特性:
(1)中位數與平均數是唯一存在的,而眾數是不唯一的;
(2)眾數、中位數和平均數在一般情況下是各不相等,但在特殊情況下也可能相等。
具體來說,平均數、眾數和中位數都是描述一組數據的集中趨勢的特徵數,但描述的角度和適用范圍有所不同。平均數的大小與一組數據里的每個數據均有關系,其中任何數據的變動都會引起平均數的相應變動;眾數著眼於對各數據出現的頻數的考察,其大小隻與這組數據中的部分數據有關;中位數則僅與數據的排列位置有關,某些數據的變動對中位數沒有影響,當一組數據中的個別數據變動較大時,可用它來描述其集中趨勢。
一般來說,平均數、中位數和鍾書都是一組數據的代表,分別代表這組數據的「一般水平」、「中等水平」和「多數水平」。平均數涉及所有的數據,中位數和眾數只涉及部分數據。它們互相之間可以相等也可以不相等,沒有固定的大小關系。
其實,它們三者有關聯也有區別。在一組數據中出現次數最多的數就是這組數據眾數,眾數和平均數一樣,也是描述一組數據集中趨勢的統計量,但它和平均數有以下兩點不同:一是平均數只是一個「虛擬」的數,即一組數據的和除以該組數據的個數所得的商,而眾數不是「虛擬」的數,是一組數據中出現次數最多的那個數據,是這組數據中真實存在的一個數據;二是平均數的大小與一組數據里的每個數據都有關系,任何一個數據的變動都會引起平均數大小的改變,而眾數則僅與一組數據的出現的次數有關,某些數據的變動對眾數沒有影響,所以在一組數據中,如果個別數據變動較大,但某個數據出現的次數最多,此時用該數據(即眾數)表示這組數據的「集中趨勢」比較合適。
中位數和平均數一樣,也是反映一組數據集中趨勢的一個統計量。平均數主要反映一組數據的一般水平,中位數則更好地反映了一組數據的中等水平。它和平均數有以下不同:一是平均數只是一個「虛擬」的數,而中位數並不完全是「虛擬」數,當一組數據有奇數個時,它就是該組數據順序排列後中間的那個數據,是這組數據中真實存在的一個數據;二是平均數的大小與一組數據里的每個數據都有關系,任何一個數據的變動都會引起平均數大小的改變,而中位數則僅與一組數據的排列位置有關,某些數據的變動對中位數沒有影響,所以當一組數據的個別數據偏大或偏小時,用中位數來描述該組數據的集中趨勢就比較合適。
㈤ 誰能提供一個正定協方差矩陣,6乘以6的
java 代碼?
㈥ 數據處理,用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中怎樣編寫計算方差的程序
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;
}
㈨ 用OpenCV開發人臉識別軟體,用Java好還是用C/C++好
一般地說,用C/C++比較「主流」些,因為C/C++編譯後直接生成可執行文件,不需要虛擬機,程序性能比較好。
另一方面,無論用C/C++還是JAVA,使用 OpenCV進行開發的難度和工作量,沒有太大的差異。
如果你程序追求性能,建議用C或C++
㈩ 在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());
}