美文网首页PythonPython学习
哔!您有一份程序员数学公式宝典,请查收

哔!您有一份程序员数学公式宝典,请查收

作者: 天善智能 | 来源:发表于2019-02-12 09:50 被阅读104次

欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,python,R等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群,数据爱好者们都在这儿。

作者:  张小鸡 Python爱好者社区专栏作者

知乎ID:https://www.zhihu.com/people/mr.ji

个人公众号:鸡仔说  

网上有一个经典的算法入门题:

虽然是个夸张的梗,但是也部分反映了一个现实,大部分的程序员童鞋(也包括我在内)是缺乏一定的数学素养的。一个常见的现象就像上面所展示的那样,看代码的时候贼顺溜,一看到数学部分就

在重新学习了一段时间数学基础后,我发现,数学本身的逻辑其实并非复杂到让人难以理解的程度。而最大的坎恐怕就是其中犹如天书般的数学符号吧?基于此,我想整理一个基于代码的数学符号释义,由于我本身的知识水平限制,若出现了部分错误,还希望各位Ladies和乡亲们海涵并指出。另,本文长期更新,欢迎大家补充和收藏。

含义:多项数之和

中文:西格玛

英文:sigma

小写:σ

代码释义:

defsigmod(i, n):# Σ 多项数求和ifnotisinstance(i,int)ornotisinstance(n,int):returnFalsereturnreduce(lambdax, y: x+y,range(i, n+1))

代码释义:

defdouble_sigmod(a, b, i, j, func=None):ifnotisinstance(a,int)ornotisinstance(b,int)ornotisinstance(i,int)ornotisinstance(j,int)ornotfunc:returnFalseresult=0forkinrange(a, b+1):forninrange(i, j+1):            result+=func(n, k)returnresult

参考资料:

http://link.zhihu.com/?target=https%3A//www.quora.com/What-is-an-example-of-a-double-summation

含义:多项数连续乘积

中文:派

英文:pai

小写:π

代码释义:

defcontinue_multiply(i, n):'''    Π 连乘     '''ifnotisinstance(i,int)ornotisinstance(n,int):returnFalsereturnreduce(lambdax, y: x*y,range(i, n+1))

No.3n!

含义:一个正整数的阶乘是所有小于及等于该数的正整数的积,并且0的阶乘为1。

中文:阶乘

英文:factorial

代码释义:

deffactorial(n):'''    n! 阶乘    '''ifnotisinstance(n,int):return'Invalid data, please input a int number'ifn==0orn==1:return1else:returnn*factorial(n-1)

含义:从n个不同元素中每次取出m(n≥m)个不同元素,组合在一起(不关心顺序)

中文:组合

英文:combination

代码释义:

defcombination(iter=None, m=0):'''    从 n 中选出 m 个,进行组合     '''result=[]    tmp=[0]*m    length=len(iter)defnext_num(li=0, ni=0):ifni==m:            result.append(copy.copy(tmp))returnforljinrange(li, length):            tmp[ni]=iter[lj]            next_num(lj+1, ni+1)    next_num()return(result,len(result))

含义:从n个不同元素中每次取出m(1≤m≤n)个不同元素,排成一列(有顺序要求)

中文:组合

英文:permutation

可以这么理解,从n个有标记的小球中,先取出来一个,然后再在接下来的n-1个元素中去除一个放到第二个位置,最后从n-m+1个元素中,取出一个放在第m个位置上

代码释义:

(备注,我那个n中选择m个的算法还没搞出来,只实现了全排列,后续搞明白了再补充)

defpermutation(iter=None, n=0):'''     从 n 中选出 n 个,进行排列    '''result=[]    tmp=[0]*ndefnext_num(arry, ni=0):ifni==n:            result.append(copy.copy(tmp))returnforljinarry:            tmp[ni]=lj            arry_c=arry[:]            arry_c.pop(arry.index(lj))            next_num(arry_c, ni+1)    next_num(iter[:],0)return(result,len(result))

最后温馨提醒,本文会长期更新。也欢迎小伙伴补充更多不是很明了的数学公式,后续会继续完善。

另外,代码已经同步上传至GitHub,欢迎小伙伴follow和star:☞☞☞传送门戳这里:https://github.com/hacksman/MathematicalNotation

一道思考题:求1-100的和(要求时间复杂度最小,温馨提示:尽量使用数学知识)

作者其它好文推荐:当女票发来一套送命题,程序员应该怎么做?

Python的爱好者社区历史文章大合集

2018年Python爱好者社区历史文章合集(作者篇)

2018年Python爱好者社区历史文章合集(类型篇)

福利:文末扫码立刻关注公众号,“Python爱好者社区”,开始学习Python课程:

关注后在公众号内回复“课程”即可获取:

小编的转行入职数据科学(数据分析挖掘/机器学习方向)【最新免费】

小编的Python入门免费视频课程!!!

小编的Python快速上手matplotlib可视化库!!!

崔老师爬虫实战案例免费学习视频。

陈老师数据分析报告制作免费学习视频。

玩转大数据分析!Spark2.X+Python 精华实战课程免费学习视频。

相关文章

  • 哔!您有一份程序员数学公式宝典,请查收

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞...

  • 您有一份惊喜请查收

    我从未介绍过自己,我就是住在小荷班班徽里的那个守护神啊。今天我被小荷们吵醒了。 其实这几天晨...

  • 您有一份礼物,请查收!

    2017年做什么最赚钱?当然是做微商!2017年是微商行业突飞猛进的一年,不计其数的企业和个人都投入到微商创...

  • 苏轼:您有一份简历请查收

    姓名:苏轼 小名:子瞻 外号:东坡居士,铁冠道人 籍贯:四川眉州 出生日期:1037年1月 联系电话:139xxx...

  • 您有一份礼坞,请查收

    盼星星盼月亮, 小程序 [理论坞] 终于上线了 先介绍一下它 理论坞是什么? 一个关于理论的库, [坞]是小港湾,...

  • 您有一份跳槽指南请查收

    01 辞职之前,我的身份是某培训机构就业老师。 每天的主要工作就是为学生找工作。联系企业,安排面试时,推荐学生。铁...

  • 您有一份见证礼物,请查收…

    仰望星空,地球是宇宙给人类的礼物 低头凝望,一花一叶是大自然给世界的礼物 孩子是给父母的礼物 朋友是陪伴的饿礼物 ...

  • 2018-12-24

    叮,一份圣诞惊喜请查收

  • 叮~您有一份婚礼创意,请查收!

    现在婚礼策划流程雷同的形式真的乏味,还有主持人教科书般的开场白,让底下人哈欠连连。 拜托快点把婚结完我要肥家睡觉好...

  • 您有一份短视频资料,请查收!

    此文转载自28推学堂。作为新媒体人,当下最火最潮流的莫过于各大短视频平台了。如:抖音、快手、微视、秒拍等,相信大家...

网友评论

    本文标题:哔!您有一份程序员数学公式宝典,请查收

    本文链接:https://www.haomeiwen.com/subject/gdsheqtx.html