0
点赞
收藏
分享

微信扫一扫

Python计算电场中两点间的电势差


Python计算电场中两点间的电势差_人工智能

参考代码:

Python计算电场中两点间的电势差_数据分析_02

前天有奖答题内容:

1000道Python题库系列分享14(1道代码阅读题)

参考答案:

该问题功能为求解在n个物品中任选i个物品有多少种选法,也就是组合数C(n,i)。

根据组合数定义,需要计算3个数的阶乘,在很多编程语言中都很难直接使用整型变量表示大数的阶乘结果,虽然Python并不存在这个问题,但是计算大数的阶乘仍需要相当多的时间。文中代码提供了另一种计算方法,也就是通过展开组合数定义然后进行约分来减少计算量:以Cni(8,3)为例,按定义式展开如下,对于(5,8]区间的数,分子上出现一次而分母上没出现;(3,5]区间的数在分子、分母上各出现一次;[1,3]区间的数分子上出现一次而分母上出现两次。如下图所示:

Python计算电场中两点间的电势差_数据分析_03

除了缺少参数正确性的外围检查代码,该问题最大的问题有两处:1)实数计算会引入误差;2)循环结构中的n-j和minNI-j都是从大到小变化,会出现除不尽的情况,从而引入误差。这两种误差的积累越来越大,最终会导致错误结果。

参考代码:

Python计算电场中两点间的电势差_数据分析_04

获奖名单:估计是这次题目难度偏大了,严格来说,所有留言中没有完整答案,但是一本也不送的话又不太好意思,只好选一个最接近的了。下面这位朋友请于明天中午12点之前通过公众号后台把详细邮寄地址和电话发送给我,以便邮寄赠书。

Python计算电场中两点间的电势差_go_05

举报

相关推荐

0 条评论