使用整数的3个数字的平均值

Eci*_*ana 3 math floating-point integer average

我想计算三个数字的平均值,如:

d = int(round((a + b + c) / 3.0))
Run Code Online (Sandbox Code Playgroud)

其中a,b,c,d为整数.

是否可以仅使用整数得到相同的结果?

我对此感兴趣是因为性能原因,我假设使用整数进行数学计算应该比使用浮点数更快.

上面的示例将整数转换为浮点数,计算结果,对其进行舍入并转换回整数.是否可以避免int < - > float转换?

use*_*019 9

鉴于1,1,2 - > 1的要求; 1,2,2 - > 2然后可以使用整数除法来完成.

使用//表示整数除法,使用n表示元素数.

average = ( a+ b + c + .... + n//2 ) // n
Run Code Online (Sandbox Code Playgroud)

即汇总所有值,然后添加一个数字来处理舍入.

正如@ Henrik的回答所述,这假设所有数字都是正数.