开发者社区> 问答> 正文

遇到一个考试问题,求解答

期末考试到了,n名标号1-n的同学坐成一排参加考试。考完试后,为了防止混乱,监考老师决定依次让第 n 个人的卷子传给第 n-1 个人,第 n-1 个人的卷子传给第 n-2 个人 ... 第 2 个人的卷子传给第 1 个人,这样老师就能够直接收到所有人的卷子了。但是同学们经过了多年的考试,都练就了一身抄答案的好本领。再传卷子的过程中,第 i 个人都有 ai 概率抄到第 i-1 个人或者 bi 概率抄到第 i+1 个人。特殊的,a0 与 bn 均为 0。但是每个人在抄他人的同时又不想被别人抄,被抓到了也得受罚。因此现在他们需要计算一下没有被抄到卷子的期望人数,以决定此次考试是否要大家一起作弊。入参有四个,第一个是一个整数 n,表示总人数。第二个是一个整数 m,表示被抓人数的上限。(1<=m<=n<=10^5)。第三个输入 n 个数,表示 a1-an。第四个输入 n 个数,表示 b1-bn。若此次被抄的期望人数不超过 m,输出 "Yes",否则输出“No”。(不包括引号)

展开
收起
游客4skzfvnrxrzbi 2021-12-23 17:13:42 469 0
1 条回答
写回答
取消 提交回答
  • 根据题意,需要计算被抄的期望人数。那么首先要计算每个人被抄袭的概率。第 i个人可能被i-1 抄,也有可能被i+1抄。被 i-1抄的概率是pre=b[i-1] ,被i+1 抄的概率是next =a[i+1]。(若i-1 或者i+1 不存在,则被其抄的概率为0)在计算i被抄袭的概率时,可以先计算i 不被抄袭的概率,再用1减去不被抄袭的概率即为被抄袭的概率。被抄袭的概率为:1-(1-pre)*(1-next)。将每个同学被抄袭的概率相加,即可得到被抄袭的期望人数。 输入:3 1 [0.000,0.500,0.500] [0.500,0.500,0.000] 输出:"No"

    2021-12-23 18:59:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载