【每日一题】新21点——概率题目

本文探讨了一道结合概率和动态规划的21点问题,重点介绍了从后往前推导的解题思路。通过设置成功事件概率,并利用转移方程简化计算,避免超时。文章揭示了如何利用滑动窗口优化动态规划算法。

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

2020/06/03 一道穿了概率外衣的dp问题
在这里插入图片描述

思路核心在于如何理解题意,这个概率是如何计算得到的。
有两种思路,第一种思路从前往后进行推导,但是我没成功。暂且不表。
主要讲一下比较好的第二种思路。既然是一道概率题,我们首先把游戏结束时的成功的事件设置为1。成功事件是指,最后结果大于等于K且小于等于N的事件,与之相应的失败时间是最后结果大于N。

由于最后的状态只与前一个状态有关,因此我们设置状态dp[i]表示当前数值为i时,成功的概率。
显然dp[K: min(N,K+W)+1] = 1,其余状态都初始化为0。

转移方程:dp[i] = sum(dp[i+1:i+W+1])/W。也就是对未来的w个状态的概率加和并平均。这样我们需要最后得到dp[0]即可。

class Solution:
    def new21Game(self, N: int, K: int, W: int) -> float:
        # 时间复杂度O(kw+min(N-K,W))
        if K == 
2025年数学建模培训:第3次训练题 做题时间:2025.6.30——2025.7.4 集中时间:待定 集中地:待定 任务要求:按照模板写出论文,集中时需要仔细讲解所有推理过程及计算结果。 *************************************************************************** 自动化车床管理 一道工序用自动化车床连续加工某种零件,由于刀具损坏等原因该工序会出现故障,其中刀具损坏故障占95%,其他故障仅占5%。工序出现故障是完全随机的,假定在生产任一零件时出现故障的机会均相同。工作人员通过检查零件来确定工序是否出现故障。现积累有100次刀具故障记录,故障出现时该刀具完成的零件数如附件表。现计划在刀具加工一定件数后定期更换刀具。 已知生产工序的费用参数如下: 故障时产出的零件损失费用f=200元/件; 进行检查的费用t=20元/次; 发现故障进行调节使恢复正常的平均费用d=4000元/次(包括刀具费); 未发现故障时更换一把刀具的费用k=1500元/次。 1)假定工序故障是产出的零件均为不合格品,正常时产出的零件均为合格品,试对该工序设计效益最好的检查间隔(生产多少零件检查一次)和刀具更换策略。 2)如果该工序正常时产出的零件不全是合格品,有2%为不合格品;而工序故障时产出的零件有40%为合格品,60%为不合格品。工序正常而误认有故障停机产生的损失费用为2000元/次。对该工序设计效益最好的检查间隔和刀具更换策略。 3)在2)的情况,可否改进检查方式获得更高的效益。 附:100次刀具故障记录(完成的零件数) 459 362 624 542 509 584 433 748 815 505 612 452 434 982 640 742 565 706 593 680 926 653 164 487 734 608 428 1153 593 844 527 552 513 781 474 388 824 538 862 659 775 859 755 649 697 515 628 954 771 609 402 960 885 610 292 837 473 677 358 638 699 634 555 570 84 416 606 1062 484 120 447 654 564 339 280 246 687 539 790 581 621 724 531 512 577 496 468 499 544 645 764 558 378 765 666 763 217 715 310 851
最新发布
07-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值