前几期更新两道题目和几个知识点,今天给大家主要讲解一道数学综合Python3的一道题目,希望大家踊跃提出问题或者有好点的解题方式都可以评论的,同样的如果有错误之处还希望大佬指出我的错误,会有小红包的哦~下面让我们一起来看题目吧!!!
7.对于下面的Python3函数,如果输入的参数n非常大,函数的返回值会趋近于以下哪个值(选项中的值用Python表达式来表示)
>>>import random
>>>def foo(n):
>>> random.seed()
>>> c1=0
>>> c2=0
>>> for i in range(n):
>>> x=random.random()
>>> y=random.random()
>>> r1=x*x=y*y
>>> r2=(1-x)*(1-x)+(1-y)*(1-y)
>>> if r1<=1 and r2<=1:
>>> c1+=1
>>> else:
>>> c2+=1
>>> return c1/c2
A.4/3
B.(math.pi-2)/(4-math.pi)
C.math.e**(6/21)
D.math.tan(53/180*math.pi)
方法1:通过频率不断的去接近概率,相当于向面积为1的方框中(黄色加绿色)随机扔石子,r1表示红色的部分,r2表示蓝色的部分,那么c1就表示石子落入黄色的次数,c2表示落入绿色的次数。一共投掷n次落入黄色部分的概率为:P1=c1/n,落入绿色部分概率为:P2=c2/n。
所以 c1/c2=P1/P2=黄色面积/绿色面积=(math.pi-2)/(4-math.pi)
故答案应该选B.
方法2:画出两个函数的图像然后两个函数图像的交集为c1,全集为面积为1的矩形,则c2就为c1的补集,既然有了c1和c2的值,就可以求出c1/c2的值同样的解出的答案为(math.pi-2)/(4-math.pi)。
图片为方法2的详细步骤。
以上就是我的两种解法,如果有更好的解法可以联系我,如若侵权请联系博主,我会尽快删除的!!!下期为大家更新计算机基础和Python3的综合题如有疑问可以私信或者评论给我!!!



