前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python计算电场中两点间的电势差

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

作者头像
Python小屋屋主
发布2018-09-20 14:42:12
1K0
发布2018-09-20 14:42:12
举报
文章被收录于专栏:Python小屋Python小屋

参考代码:

前天有奖答题内容:

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

参考答案:

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

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

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

参考代码:

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档