LDU组队学习task01-通过二项分布简单了解python的简易性

总所周知,Python 是一种上手简单、功能丰富的编程语言,是数据科学领域首选的可靠工具。通过 Python 你可以迅速解决问题,而不是把精力消耗在复杂的语法与编程细节上,而怎么体现简单性呢?接下来本文将通过概率论与数理统计中一个简单问题来讨论。

问题是这样的:按规定,某种电子元件使用寿命超过 1000 小时为一级品。已知某一大批产品的一级品率为 0.2,现在从中随机地抽查 20 只。 计算 20 只元件中恰好有 k 只 (k=0,1,...,20) 为一级品的概率为?

根据二项分布公式,所求的概率为:

                   

 首先,我们尝试用python来解决这个问题:

 其中,解释一下,函数factorial用来计算阶乘,函数px用来计算幂函数的值,其中,运用到while循环语句。

while 循环语句根据某一条件重复执行某个语句块,它的基本结构如下:

while ***:
    statemnt

若 *** 的结果为 True 则继续重复执行 statement,若结果为 False 则停止循环。

 同样的,我们用c来写呢,按照公式的逻辑,这里阶乘我用的是while循环写的,也可以用递归来写,写的如下:

 程序也没有报错

但是结果呢??

 为什么会出现以上结果呢?

于是乎,我们带着问题开始了debug,这里第一个问题在于我们的阶乘函数,我一开始用的int 范围为-2^31 ~ 2^31-1,由于阶乘函数的值非常大,所以说这里50的阶乘用int数据类型 c语言就表示不出来,8的阶乘还可以,见下图一,后来用的是double的范围:-2^1024 ~ +2^1024,就解决问题了。同样的问题,也出现了在幂函数的身上,同样还是小数点后好几十位,在这里我还发现一个有意思的现象是小数的几次方,c给出的答案总带着几个莫名的小数(知道的大佬可以给解释一下啊)。第二个问题,就是我们阶乘还幂函数的运算,由于类型关系,整数和小数的类型,c并不能很好的给我们处理,也是我在数据类型及转换方面不太懂(嗯,需要恶补),尤其是一开始用的都是整型int,后来意识到问题,改成了double,但是在阶乘和幂函数的运算还是不对,这里后续去咨询下同学和老师,会在接下来给出答案。但是在python,我们却不用顾虑这么多,它功能强大、兼容性高、易上手,只要逻辑和格式正确能高效快速给出答案(初学者的了解,如有不对,请批评指正)。学习内容部分来源于聪明方法学python!!

Debug如下,手动感谢张鑫哥哥陪我一起debug!!!

 

 

LDU分解是一种对数学矩阵进行分解的方法,它把一个矩阵分解为一个下三角矩阵L,一个对角矩阵D和一个上三角矩阵U的乘积。在计算机科学领域,CSDN是一个知名的技术社区,提供了大量的技术文章和教程。如果要用中文回答LDU分解CSDN,可以从以下几个方面来进行回答。 首先,可以简要介绍LDU分解的原理和应用。LDU分解是一种用来简化矩阵计算的方法,可以帮助我们更容易地理解和求解复杂的线方程组。在实际应用中,LDU分解可以用于解决物理、工程、经济等领域的实际问题。 其次,可以探讨CSDN在技术领域的作用和影响。CSDN作为国内领先的IT技术社区,汇集了大量的技术人员和专家,为广大技术爱好者提供了学习、交流和分享的平台。在CSDN上,我们可以获取最新的技术动态、学习最新的编程语言和框架,并且还可以通过博客、问答等方式了解其他技术人员的经验和见解。 最后,可以谈谈如何利用CSDN平台获取关于LDU分解的相关知识。通过CSDN平台,我们可以搜索到大量关于LDU分解的文章、教程和讨论,可以通过阅读他人的经验和观点来更好地理解和应用LDU分解。同时,我们也可以在CSDN上发布自己的学习笔记和疑惑,与其他技术人员进行交流和讨论,共同进步。 总的来说,LDU分解和CSDN都在各自领域发挥着重要的作用,通过CSDN可以获取关于LDU分解的相关知识,从而更好地学习和应用这种数学方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值