1
raptium 2012-07-13 19:08:42 +08:00
下次再讀入同一個數組是沒有必要清零的吧?
加權平均值的話,那每一項的權重是在哪裡呢? |
2
thedevil7 OP @raptium
嗯, 读入是没有必要清零了. 只是还有另一组存放求平均值的数组需要清零. 每一项的权重由该组数据统计得到, 比如某一个数据出现多次, 统计出现的概率. 也就是说, 现在只有数据, 权重未知, 如果需要权重只有分析数据. 不一定非得是加权平均的算法, 任何近似的算法都可以. 补充: 使用的 C 不是 Win 不是 Linux 而是 MSP430 嵌入式 C 语言, 所以可能某些常用库以及常用的函数无法调用. 例如, memset. |
3
zzzlhope 2012-07-13 19:14:29 +08:00
1.可以不用清零吧?直接利用这个数组读取下一次的数据,上一次的数据会被覆盖掉。
2.简单求平均值: float sum=0; float avg=0; for(int i,i<90,i++) { sum=sum+a[i]; //如果有权值,可存入数组b[90]中,与a[90]一一对应,sum=sum+a[i]*b[i] } avg=sum/90; |
4
zzzlhope 2012-07-13 19:16:15 +08:00
我想把回复删了。。。
|
5
chisj 2012-07-13 19:16:24 +08:00
memset函数。
|
6
haohaolee 2012-07-13 19:19:33 +08:00
就用最符合直觉的方式做就OKay了吧
|
7
013231 2012-07-13 19:36:40 +08:00
bzero函數.
BZERO(3) BSD Library Functions Manual BZERO(3) NAME bzero -- write zeroes to a byte string LIBRARY Standard C Library (libc, -lc) SYNOPSIS #include <strings.h> void bzero(void *s, size_t n); DESCRIPTION The bzero() function writes n zeroed bytes to the string s. If n is zero, bzero() does nothing. SEE ALSO memset(3), swab(3) HISTORY A bzero() function appeared in 4.3BSD. Its prototype existed previously in <string.h> before it was moved to <strings.h> for IEEE Std 1003.1-2001 (``POSIX.1'') com- pliance. BSD June 4, 1993 BSD (END) |
10
raptium 2012-07-13 20:37:30 +08:00 1
加權的權重等於出現的概率?那和普通的平均有什麼區別?
|
11
laskuma 2012-07-13 20:38:25 +08:00 1
@thedevil7 不是很理解这个数据的含义...有格式吗?如果是要通过分析这些数据得出其中的权重的话,我就直接理解成为读入90个人每个人的分数。直接加起来/90 就已经是加过权的了。
|
15
sqbing 2012-07-13 23:56:38 +08:00
Memset or bzero
|