1. 用c語言編寫一段程序:隨機生成20個數,求他們的平均數。 這個怎麼寫呀
#include<cstdio>
#include<stdlib.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<stdio.h>
usingnamespacestd;
intmain()
{
srand(time(NULL));
__int64sum=0;
for(inti=0;i<20;i++)
{
sum+=rand();
}
cout<<"平均值為"<<(double)sum/20<<endl;
return0;
}
2. VB程序設計 隨機產生20個0∼100之間的整數,求這組隨機數的方差和標准差
PrivateSubForm_Click()
Randomize
Dima(0To19)AsInteger
DimaverageAsSingle
DimsAsSingle
Fori=0To19
a(i)=Int(Rnd()*100)
Print(a(i)&"");
average=average+a(i)
Nexti
average=average/20
Fori=0To19
s=s+(a(i)-average)^2
Nexti
s=s/20
Print("方差為"&s)
Print("標准差為"&Sqr(s))
EndSub
希望能幫到你
3. C語言程序實現求一組數的平均值的標准方差
1。求每一個數與這個樣本數列的數學平均值之間的差,稱均差;
2。計算每一個差的平方,稱方差;
3。求它們的總和,再除以這個樣本數列的項數得到均方差;
4。再開根號得到標准方差!
/*方差和*/
doublenum[10];//用10長度的數組舉例
doublesum=0;//保存一下10個數的和
doublepow2_sum=0;//臨時保存方差和
double__average;//臨時保存均方差
doubleans;//均方差
for(inti=0;i<10;i++){
sum+=num[i];
}
for(inti=0;i<10;i++){
pow2_sum+=pow(((sum/10)-num[i]),2);//math.h平方函數求方差和
}
/*求均方差*/
__average=pow2_sum/10;
/*標准方差*/
ans=sqrt(__average);
4. C語言或者matlab怎麼樣生成方差固定的N個數
(1)
假設X的均值μ,方差σ^2
那麼y=ax+b的均值則為a*μ+b, 方差為:a^2*σ^2
Matlab的randn函數可以產生均值為0,方差為1的正態分布,
那麼如果我們要生成一個均值為500,方差為25的1000個隨機數,
a=5;
b=500;
y=a*randn(1000,1)+b;
驗證
stats=[mean(y)std(y)var(y)]
stats = 1×3
499.8368 4.9948 24.9483
(2)
Matlab還有一個函數是random('name',A,B)
通過設置『name』參數和A,B參數來生成一系列隨機數
比如要想生成均值為0,方差為25的正態分布的數組, 那麼
y=random('norm',0,5)
5. C語言編程:計算一組整數的平均值和方差。
我原有一個 y_statistics,給你改成int, 輸出 mean,sigma,rms
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
y_statistics(int *y, int N, float *ymean, float *ysigma, float *yrms)
{
int i;
float ys,yr,dy,ym;
double sum,sum2;
sum = 0.0;
for (i=0;i<N;i++) sum = sum + (float) y[i];
ym = (float) ( sum / (double) (N) );
*ymean = ym;
sum = 0.0;
sum2 = 0.0;
for (i=0;i<N;i++){
dy = y[i] - ym;
sum = sum + dy * dy;
sum2 = sum2 + y[i] * y[i];
};
yr = (float) sqrt( sum2 / (double) N );
ys = (float) sqrt( sum / (double) (N-1) );
*ysigma = (float) ys;
*yrms = yr;
}
void main() {
int y[5]={2,3,4,5,6};
int N=5;
float ymean, ysigma, yrms;
y_statistics(&y[0], N, &ymean, &ysigma, &yrms);
printf("%f %f %f\n",ymean, ysigma, yrms);
}
6. C++實驗:任意給出20個 數,求均值和方差
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
const int N=20;
float a[N],sum=0,avg,fangcha;
for(int i=0; i<N; i++)
{
a[i]=rand();
sum+=a[i];
}
avg=sum/N;
cout<<"average="<<avg<<endl;
for(int i=0; i<N; i++)
{
fangcha=(a[i]-avg)*(a[i]-avg);
cout<<"fangcha "<<i<<"="<<fangcha<<endl;
}
system("PAUSE");
return 0;
}
這是隨機生成20個數之後,自己計算平均值和方差的程序,供參考。
7. C語言中隨意生成20個數字用什麼函數啊
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
/*產生一個start~end區間中的隨機數,然後返回該隨機值*/
int proce_rand(int start, int end);
int main(void)
{
int num = 0;
int i = 0;
//for test
for(i=0; i<20; i++)
{
num = proce_rand(100,200);
/*注意這里的休眠是必要的,因為是用time(NULL)作為種子,如果直接運行,那麼很有可能產生的多個一樣的隨機數*/
sleep(1);
printf("%d\n",num);
}
return 0;
}
int proce_rand(int start, int end)
{
int rand_num;
int start_t;
int end_t;
//確定參數范圍,確保start_t<=end
(start<=end)?(start_t=start,end_t=end):(start_t=end,end_t=start);
//time(NULL)為隨機種子,播種子
srand((unsigned)time(NULL));
//產生隨機數
rand_num =rand()%(end_t-start_t+1)+start_t;
return rand_num;
}
8. C語言編程考試題 用隨機函數產生並輸出20個[10,99]的隨機整數,輸出其中大於這20個數的平均值的數。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
srand(time(0));
int i=0; //用於下面的循環
int a[20]={0}; //用於存儲產生的20個隨機數。
double ave=0; //用於求20個隨機數的和,為了求他們的平均數。
for(i =0;i<=19;i++)
{
a[i]=rand()%90+10; //rand()%90產生0-89的隨機數,加上10後就是10-99的隨機數。
ave=ave+a[i];
printf("第%d個隨機數是:\n",i+1,a[i]);
}
ave=ave/20;
for(i =0;i<=19;i++) //列印大於平均數值的隨機數;
{
if(a[i]>ave)
{
printf("第%d個隨機數等於%lf大於平均數%lf\n",i+1,a[i],ave)
}
}
return 0;
}
結果:
第1個隨機數是:34
第2個隨機數是:32
第3個隨機數是:86
第4個隨機數是:20
第5個隨機數是:86
第6個隨機數是:43
第7個隨機數是:26
第8個隨機數是:65
第9個隨機數是:98
第10個隨機數是:57
第11個隨機數是:98
第12個隨機數是:59
第13個隨機數是:72
第14個隨機數是:27
第15個隨機數是:25
第16個隨機數是:55
第17個隨機數是:53
第18個隨機數是:83
第。。。。。。。。
9. C語言 求方差
直接上代碼:
#include<stdio.h>
#include<conio.h>
#include<math.h>
doublefangcha(doublex[],intn){
//求數組x(具有n個元素)的方差:S=(<x^2>-<x>)^0.5
inti;
doublexaver=0.0,x2aver=0.0;
for(i=0;i<n;++i){
xaver+=x[i];x2aver+=x[i]*x[i];
}
xaver/=n;x2aver/=n;//求x的平均、x^2的平均
returnsqrt(x2aver-xaver*xaver);
}
intmain(){
doublex[5];
inti;
printf("Input5datas: ");
for(i=0;i<5;++i){
scanf("%lf",&x[i]);
}
printf(" FangChaS=%.4lf",fangcha(x,5));
printf(" Finished! ");
getch();
return0;
}
希望能幫助到你。
10. 求助,C語言,求方差的編程問題!
#include <stdio.h>
int main ( void )
{
float *x, *p, E, D;
int i, n;
printf ( "n=" );
scanf ( "%d", &n );
p = x = (float*) malloc ( sizeof(float) * n );
E = D = 0.0;
for ( i = n; i > 0; i-- )
{
scanf ( "%f", p );
E += *p++;
}
E /= n;
p = x;
for ( i = n; i > 0; i-- )
{
float tmp;
tmp = *p++ - E;
D += tmp * tmp;
}
D /= n;
free ( x );
printf ( "%f", D );
return 0;
}