对MATLAB计算阶乘、排列数与组合数的一个思考-极大量乘以极小量

在使用MATLAB进行概率计算时,针对特定事件在不同时间跨度内发生的概率,出现了不合理的结果。通过具体案例分析,探讨了计算误差及结果合理性,指出软件计算可能导致的误差问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我在看过帖子“MATLAB计算阶乘、排列数与组合数”后感觉作为估算matlab确实在这个方面是个好工具。然而我遇到了一个实际问题,似乎有一些不合理的结果。
一个事件每日的发生概率是0.0167.则在780日中随机选取31日,这31日每日都发生该事件的概率为多少?在260日中随机选取31日,这31日每日都发生该事件的概率为多少?
计算P1=C(780,31)*0.0167^31.
P2=C(260,31)*0.0167^31.
输入P1=nchoosek(780,31)*0.0167^31
P2=nchoosek(260,31)*0.0167^31
a=0.0167^31
b=nchoosek(780,31)
c=nchoosek(260,31)
得到 P1=2.4086
P2= 1.1075e-015
a = 8.0207e-056
b= 3.0030e+055
c= 1.3808e+040
从计算结果来看,这个数值应该是2.4. 这个结果显然不合理。从意义上理解,肯定是总样本数越大(比如780比260大),得出的概率越高(计算出来的P1大于P2)。但是不应该大于1.
这个结果是软件计算误差过大导致的错误结果还是结果合理?

https://blog.youkuaiyun.com/X_s_yu/article/details/88355601

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值