Python趣味编程--高斯算法

相传,高斯小时候非常淘气,一次老师去开会他和同学们闹腾。老师回来后大发雷霆,命令他们全班所有人都开始算1+2+3+4+5+6+……+100的得数。全班只有高斯想出来的(1+100)+(2+99)+(3+98)……+(50+51)…………一共有50个101,所以50×101就是1加到一百的得数。后来人们把这种简便算法称作高斯算法。总结起来就是,(首项+末项)*项数/2,也即等差数列求和公式。

这种算法在很多地方有应用,如求梯形面积,(上底+下底)×高÷2;求三角形面积,底×高÷2。

约翰·卡尔·弗里德里希·高斯(Johann Carl Friedrich Gauss ,1777年4月30日-1855年2月23日)德国著名数学家、物理学家、天文学家、大地测量学家,是近代数学奠基者之一,被认为是历史上最重要的数学家之一,并享有“数学王子”之称。高斯和阿基米德、牛顿并列为世界三大数学家。

代码:

a = int(input("请输入开始值: "))
b = int(input("请输入结束值: "))
h=b-a+1
s=(a+b)*h/2
print('和为:%d' %s)

结果:

请输入开始值: 1
请输入结束值: 100
和为:5050

不用高斯算法,直接累加也是可以的(计算机运行就是快)。

代码:

def add(n):
sum=0
#从1累加到n
for i in range(1,n+1):
sum+=i
print ("从1累加到%d和是:%d" %(n, sum))

n = 100
add(n)

输出结果:

从1累加到100和是:5050
发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();