1. 求一個C語言求中位數的程序
你描述的要求不是很明了,應該分步描述,每一步的要求分步寫出來,大家容易看懂.
明白你的意思了!
只有兩個口控制步進電機的話,需要外加步進電機驅動器.
p1.0控制方向,p1.0是1(0)電機向前,p1.0是0(1)步進電機向後
p1.1控制步數和速度,用一個PWM就可以了,直接用定時器來控制.pwm頻率越高速度越快,但要用在定時器中斷裡面計算步進的步數來確定走了多遠.
至於你說的中斷信號,可以用循環掃描的方法,在程序中掃描輸入中斷信號,當檢測到信號後改變P1.5的電平,即可點亮LED
2. EXCEL中如何求平均數,眾數和中位數
求A列的:
平均數: AVERAGE(a:a)
中位數: MEDIAN(a:a)
眾數: MODE(a:a)
3. 請問如果分組,求各組的中位數該如何寫公式呢
F2公式=MEDIAN(IF(A$2:A$14=E2,IF(C$2:C$14>=COLUMN(A:Z),B$2:B$14,""),"")),公式輸完按CTRL+SHIFT+ENTER結束。
如果個數大於26的話,COLUMN(A:Z)中的Z可以改大一些。
4. 數學中位數怎麼算啊
首先把數據從大到小或從小到大排列
如果有奇數個數,那麼中間的數就是中位數
如果有偶數個數,那麼中間兩個數的平均數就是中位數
還要記住,求中位數一定要寫單位
5. stata求中位數
可以試一下這個命令,結果生成了一個變數x,bysort 變數名:egen x =median (變數名)
6. C語言 如何編個程序求一組數的中位數和眾數
數組排序可以不用指針。你把數組定義成全局變數,比如說a[10001];然後調用我給你的快排程序就行了,這個程序可以背下來,很有用的。
void qs(int L,int R)
{
int i=L,j=R,mid=a[(L+R)/2],t;
while(i<j)
{
while(a[i]<mid) ++i;
while(a[j]>mid) --j;
if(i<=j)
{
t=a[i]; a[i]=a[j]; a[j]=t;
++i; --j;
}
}
if(i<R) qs(i,R);
if(L<j) qs(L,j);
}
排好序之後找中位數就好辦了。
至於眾數,我覺得最好的方法是用bfs。但這個對你來說難度有點大,我就給你寫一個hash表吧。還用上面的那個數組,且假定數組a中的最大值不超過10000,若超過,你把下面這個hash數組的范圍擴大就行了。
另外,設a中有n個元素,a從1開始計數(若從0開始,你改一下就好了)
int hash[10001]={0};
int i,Max=0;
for(i=1; i<=n; ++i)
{
++hash[a[i]];
if(hash[a[i]]>hash[Max]) Max=a[i];
}
最後輸出Max就好了
剛t415422663倒是提醒我了,如果要判斷眾數有多個,我可以把上面的程序稍改一下
int hash[10001]={0};
int i,Max=-1;/*注意,這里把Max賦值為-1是為了防止數組a的元素個數為0時所有數據都被輸出*/
for(i=1; i<=n; ++i)
{
++hash[a[i]];
if(hash[a[i]]>Max]) Max=hash[a[i]];
}
//10000是數組a中可能出現的最大值,這個你可以自己改的
for(i=1; i<=10000; ++i)
if(hash[i]==Max) printf("%d\n",i);