一道小学追击问题,码农们撸起袖子,各种答案。
- Jerry74题目都见过:每天时针分针在何时重合?
当简单方程能解决时,很多人还是习惯性地用穷举,然而由舍入误差产生了各种各样的答案。
当编程抛开数学,码农真成码农。 - z16166除以11,除不尽。
- zengdragon我提供一个思路,将时针,分针,秒针视作三个运动员,环操场跑。
时针只跑一圈,每次覆盖区域为43200/12=3600;分针跑12圈,每次覆盖区域为43200/12/60=60;秒针跑60*60*12=43200圈,每次覆盖1度。
三个人在同一位置应该怎么表述?
时分秒用xyz代替,同一位置等价于?
每次z的值在y区间内,y的值又在x区间内。
x的值=取整(z/3600),y的值=取整(z/60),z‘的值=取余数(z/60)。
问题等价于:x=y=z‘,(z从0到43200时,这种情况会发生几次)
又是取整又是取余数,这个问题比想象中复杂多了,出给小学生太超纲了。
喝多了有点儿晕,明天再想。 iOS fly ~ - z16166果然是喝多了啊哈哈,题目没有秒针
而且楼主吐槽主要是说码农上来就用代码搞,而不是先用数学公式推导。并不是吐槽这个题目有多难。
假设x点y分的时候,时针、分针重合,那么按圆的角度算,
时针走过的角度 = 分针走过的角度,即 (x + y/60)/12 = y/60
得:60x = 11y,其中x=0, 1, 2, ..., 10(x=11时,y=60,是11点60分,也就是12点0分,和0点0分是一样的含义。上、下午区分一下就是答案) - zengdragon我的内心是崩溃的
iOS fly ~
- xzap22次,每个点分针追到时针一次,11点的时候。分针永远追不上时针。所以每12小时重叠11次。所以就是11等分就可以了。设时间为x,那么每次追到的时间就是 x时60x/11分 因为11时追不上,所以x取值0到10。下午开始时加12就是
- neo520回复6#xzap
看您的解题思路一目了然,一天24小时,两个11点追不上,每个小时能追上一次,所以是24-2=22次 iOS fly ~ - robert082912个点11段,因为是圆,有一个点是重复的
- styeath把时针分针画两条波形曲线呢 iOS fly ~
- weiyangge这就是传说中的自己树个靶子自己打么?
- xx6412223初中经典应用题,两个小朋友跑步
- samsonlin用角速度很轻松列方程
- ketkou其实直接在脑中模拟时针和分针的转动并数数就能算出来
- zalara只用算第一次即可,后面再加上这个时间间隔
(360+y°)/60x=y°/x
x是时钟速度,60x是分钟速度,算出来y是360/59,大概就是1分多一点点 - tips每天时针分针在何时重合?
我理解穷举就是要最简单的做法 - Jerry74回复17#tips
穷举法(避免舍入误差):
[f'{t//3600}:{t%3600//60}:{t%60}' for t in range(1,43200) if .1*t%360<=t/120<.1*(t+1)%360]
数学计算:
[f'{t//3600}:{t%3600//60}:{t%60}' for i in range(11) if (t:=i*43200//11)] - hhygm0点重合为起点
重合点为 0,0+1/11,0+2/11,0+3/11,0+4/11,0+5/11,0+6/11,0+7/11,0+8/11,0+9/11,0+10/11,0+11/11(0)。往复循环
因此重合点在圆中的度数就是 n/11 *360,n=0-11 iOS fly ~ - 屋大维这种题目,码农面试遇到也不罕见吧?。。。不过算brain teaser
- jadeyang回复8#robert0829
因为是圆,所以12个点难道不是12段吗? iOS fly ~ - tiret那么,时针 分针 秒针 三针重合呢?
似乎仅有 00:00:00 和 12:00:00 这两种可能? - Jerry74开始也感觉应该有三针重合,但公式列出后,确定没有,因为719是质数。
- 富到没朋友这可不是数学问题,分针跟时针的宽度没给出来,24次才对,我对着家里的时钟看了24小时,得到准确答案