前言
平均数:平均数是指在一组数据中所有数据之和再除以数据的个数。平均数是表示一组数据集中趋势的量数,它是反映数据集中趋势的一项指标。今天就简单讲解一下编程界平均数几种简要解法。
解法一:
这种方法最为简单,弊端是如果a和b非常大的话,a+b的值可能超过了整型的储存范围(最大值为2147483647),导致溢出,得到错误的结果。
- 参考代码
1 |
|
解法二:
用一个较大值减去另一个较小值得到二者之差,将差除2后加上较小值即得到了二者平均值,可有效防止溢出的情况的出现。
步骤如图:
- 参考代码
1 |
|
方法三:
将两个数的二进制位分为相同部分和不同部分,利用按位与求出相同部分的平均数,然后再用按位异或求出不同部分的平均数,加起来就是两个数的平均数。
这里举个栗子:
- a = 10,b = 12;
- 10&12可得到 1000
- 10^12可得到 0110
计算a与b的平均值C语言表达式:
- avg = (a&b) + (a^b)>>1
- 参考代码
1 |
|
结语
知识在于汇总,方法在于总结。
不忘初心,励志前行!
