生日推算

小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天:
  3月4日 3月5日 3月8日
  6月4日 6月7日
  9月1日 9月5日
  12月1日 12月2日 12月8日
张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗?
  小明说:如果我不知道的话,小强肯定也不知道
  小强说:本来我也不知道,但是现在我知道了
  小明说:哦,那我也知道了
  请根据以上对话推断出张老师的生日是哪一天。


:idea: 其实小明的第一句话的前半句"如果我不知道的话"是废话,但又不是完全没用,主要是用来迷惑吾等旁观者的,害我头晕了那么久,BS他!!.回过头来,在已知条件中的4个月份都有两个以上的日数,所以只知道月数的小明是肯定不知道的,所以他的第一句话其实是"小强肯定不知道",因为他是这样想的,他看到条件中有两个比较特别的日子: 6月7日 和12月2日,日数是唯一的.如果N是7或2的话,小强的肯定知道了.所以只要小强先开口说知道了,那肯定是这两个其中一个,知道月份的小明自然也会知道是两者中的哪一个.但小明不等小强先开口却先一口咬定"小强肯定不知道".为什么他会这么肯定?我们分析一下,小强也不知道的情况只能是除6月7日 和12月2日外的日期了,因为都有重复的日数.小明怎么就这么确定不是这两个日期呢?显而易见,他知道的月数不是6和12.所以,小明无意中透露了第一句话的潜台词就是"M不是6或12",也就是M=3或M=9.
现在的条件就过滤为:
3月4日 3月5日 3月8日
9月1日 9月5日
5个日期了

小强听了小明的话后,一开始有点惊讶小明怎么就这么确定我也不知道呢,仔细想想,很快用同样的思路悟出小明的话中含义.根据现在已知条件,小强也得出了结论:"现在我知道了 ",但他为了要挫一下小明的锐气,就在前面先来慢慢叹半句"本来我也不知道".我们再来分析,他现在能知道的情况下只有日数没有重复的日期符合条件,所以X月5日可以排除了,我们剩下可选择的日期就只有:
3月4日 3月8日
9月1日
3个日期了

小明听到小强确认"本来我也不知道"后心里微微一笑"大家都半斤八两吧",但后半句就吓了他一跳."我靠,不是吧,刚说你不知道,马上就说知道了?搞什么东西嘛!".小明也不笨,他也马上分析到小强知道的原因和得出上面的条件来.只有两个不同的月份,知道月数的他当然也能很快的确定是哪日期了,不甘心落后的他马上说"哦,那我也知道了".我们最后分析,虽然剩下的三个日期中只有两个不同的月数,但3月的日数有两个,而不知道日数的小明也能确定下来的,那就只有9月1日这个只有一个日数的了,所以,老师的生日就是9月1日!
2023秋-B-2 生日推算 比赛已经结束。新提交将被视为补题提交,不计入比赛成绩。 题目描述 有一道推理题的原文是这样的:甲、乙、丙、丁、戊的生日是在连续的五天里,先后顺序满足以下条件: 甲比丙大几天,乙就比戊小几天; 丁比戊大 2 天; 丙的生日是在星期三。 问另外四人的生日分别在星期几? 现在我们把条件一般化,任意打乱他们的顺序,任意给定其中一人的生日,请你编写程序推算另外四人的生日分别在星期几。 注意到在上述条件描述中,只有"戊"这个人是没有任何信息直接给出的,其他人都有一个与他人关系或自己生日的描述。 输入格式 输入分 5 行,每行给出一个人的已知信息。其中: 如果是一个 [1, 7] 区间内的整数,则表示这个人的生日已知。数字 1 到 7 顺次表示星期一到星期。 如果是一个问号 ?,则表示这个人是原文中的"戊",没有任何信息直接给出。 如果是 -2,则表示这个人比 ? 对应的人大 2 天。 如果是 -x,则表示这个人比那个生日已知的人大 x 天。 如果是 +x,则表示这个人比 ? 对应的人小 x 天。 输出格式 在一行中按照输入的顺序给出对应每个人的生日,数字间和行首尾都不要有空格。 样例 输入数据 1 3 ? -2 -x +x 输出数据 1 32714 注意:星期一的前一天是星期。样例输出中,第三个人最大,是星期生日。 限制 对于所有的测试用例,限制为400 ms, 64 MB
10-12
内容概要:本文详细介绍了“秒杀商城”微服务架构的设计与实战全过程,涵盖系统从需求分析、服务拆分、技术选型到核心功能开发、分布式事务处理、容器化部署及监控链路追踪的完整流程。重点解决了高并发场景下的超卖问题,采用Redis预减库存、消息队列削峰、数据库乐观锁等手段保障数据一致性,并通过Nacos实现服务注册发现与配置管理,利用Seata处理跨服务分布式事务,结合RabbitMQ实现异步下单,提升系统吞吐能力。同时,项目支持Docker Compose快速部署和Kubernetes生产级编排,集成Sleuth+Zipkin链路追踪与Prometheus+Grafana监控体系,构建可观测性强的微服务系统。; 适合人群:具备Java基础和Spring Boot开发经验,熟悉微服务基本概念的中高级研发人员,尤其是希望深入理解高并发系统设计、分布式事务、服务治理等核心技术的开发者;适合工作2-5年、有志于转型微服务或提升架构能力的工程师; 使用场景及目标:①学习如何基于Spring Cloud Alibaba构建完整的微服务项目;②掌握秒杀场景下高并发、超卖控制、异步化、削峰填谷等关键技术方案;③实践分布式事务(Seata)、服务熔断降级、链路追踪、统一配置中心等企业级中间件的应用;④完成从本地开发到容器化部署的全流程落地; 阅读建议:建议按照文档提供的七个阶段循序渐进地动手实践,重点关注秒杀流程设计、服务间通信机制、分布式事务实现和系统性能优化部分,结合代码调试与监控工具深入理解各组件协作原理,真正掌握高并发微服务系统的构建能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值