楼主
发表于: 2010-07-21 18:15:23
一天之内有多少次时针分针秒针回重合?分别是什么时候,说出计算方法。
学C#前后不到一个月 今天去面试第一个题目就是这个 不评最佳答案,看重处理方式 纯为交流 | |
![]() |
#1 得分:0
回复于: 2010-07-21 18:21:46
别去百度啊,
只是想看看大家的第一思维 互相学习和沟通为目的的 |
#2 得分:10
回复于: 2010-07-21 18:22:39
| |||
![]() |
#3 得分:0
回复于: 2010-07-21 18:23:21
mjh
|
![]() |
#4 得分:5
回复于: 2010-07-21 18:23:23
http://lakeinmoon.bokee.com/6159214.html
|
![]() |
#5 得分:5
回复于: 2010-07-21 18:25:13
http://www.simpleness.com.cn/view/23/1.aspx
|
#6 得分:30
回复于: 2010-07-21 18:25:22
List<double> Timeslap(double wf, double ws)
{ var n = (int)(24 * 3600 * wf / 360); var times = new List<double>(n); for (int k = 0; k < n - 1; k++) { var t = 360 * (k - (int)(k * ws / wf)) / (wf - ws); if (times.Count == 0 || times[times.Count - 1] != t) times.Add(t); } return times; } 时针和分针相遇22次 | |
![]() |
#7 得分:0
回复于: 2010-07-21 18:27:48
别误解不是来求代码的
是来学习和交流 分析思路和处理方式的 高手贴代码我就学习了 主要是看学学各位的分析思路和处理方法(思维) |
#8 得分:0
回复于: 2010-07-21 18:34:12
我大学的时候,老师叫我们做这道题, 当时我找了一块表, 一直不断调时间 , 把每次重合的时间点记下来, 然后再我找规律.
| |
![]() |
#9 得分:0
回复于: 2010-07-21 18:34:27
1. 00:00:00 2. 01:05:00~01:10:00 3. 02:10:00~01:20:00 ... ... 23.23:50:00 23:55:00 如果这段没问题那老大的这方法或者思维是不是有点问题? |
![]() |
#10 得分:0
回复于: 2010-07-21 18:36:52
当然这些都是不取整的时候,精确到小数点后面N位吧 如果对time.ss取整后又如何 这23次中到底有哪个秒是整数这就的我们程序人员去找方法处理了吧 |
#11 得分:2
回复于: 2010-07-21 18:40:35
一天指的是 24小时吧?
应该是23次吧 | |
![]() |
#12 得分:0
回复于: 2010-07-21 18:44:45
楼上的别被我误导了上面有个错误 1. 00:00:00 2. 01:05:00~01:10:00 3. 02:10:00~01:20:00 ... ... 24.23:50:00 23:55:00 |
#13 得分:0
回复于: 2010-07-21 18:46:54
哎呀 想了想 不对。。。。 | |
![]() |
#14 得分:0
回复于: 2010-07-21 18:50:41
应该为 1. 00:00:00 2. 01:05:00~01:10:00 3. 02:10:00~01:20:00 ... ... 23.22:50:00~23:55:00 |
![]() |
#15 得分:15
回复于: 2010-07-21 19:54:34
这是一个推理题目
设计小时为A 分钟为B 他们都在围着圈跑 a 跑一圈(12小时) B 要跑12圈 则一个起跑点开跑,A跑一圈 b将追上a 11次又回到原点 A 再跑一圈为上一次的重复 算上起点重合一共12次 由于A B 是匀速的,则B 追上A 的位置必然均分在这个圈上 就是将这个圈12等分 分钟和秒 B 为分钟 C 为秒 我们发现 同样 B 跑一圈(1小时) C 同样要跑60圈 则一个起跑点开跑,B跑一圈 c将追上B 59次又回到原点 A 再跑一圈为上一次的重复 算上起点重合一共60次 由于B C 是匀速的,则C 追上A 的位置必然均分在这个圈上 就是将这个圈60等分 12等分与60等分一个圈 起点相同必须重合12下 则一天有24次重合 由于 00:00:00做为一天的开始 那么24:00:00就不能做为一天的结束,只能做为下一天的开始 那么一共23次 |
![]() |
#16 得分:0
回复于: 2010-07-21 20:01:23
这是一个推理题目
设计小时为A 分钟为B 他们都在围着圈跑 a 跑一圈(12小时) B 要跑12圈 则一个起跑点开跑,A跑一圈 b将追上a 11次又回到原点 A 再跑一圈为上一次的重复 算上起点重合一共12次(这里不能算)11次只能是 由于A B 是匀速的,则B 追上A 的位置必然均分在这个圈上 就是将这个圈11等分 分钟和秒 B 为分钟 C 为秒 我们发现 同样 B 跑一圈(1小时) C 同样要跑60圈 则一个起跑点开跑,B跑一圈 c将追上B 59次又回到原点 A 再跑一圈为上一次的重复 算上起点重合一共60次(不能算 只能是59) 由于B C 是匀速的,则C 追上A 的位置必然均分在这个圈上 就是将这个圈59等分 则起点相同一个11等分和圈子和一个59等分的圈子 必然只有起点重合 晕 答案是一次 |
![]() |
#17 得分:0
回复于: 2010-07-21 20:04:02
楼上说的
是每12小时一次 0点一次 12点一次 2次 24:00:00的重合算下一天 |
![]() |
#18 得分:0
回复于: 2010-07-21 20:12:33
|
#19 得分:25
回复于: 2010-07-21 20:23:29
这要看什么叫做“重合”?
我写的程序:
调整你的“精度”来看看(或者这里的精度还有其它控制方法?) | |||
#20 得分:5
回复于: 2010-07-21 20:26:14
算起起点24次重合,终点不算,是第二天的起点。
思路就是 1天24小时,从起点开始,每过1小时(不到2小时),分钟与时钟重叠一次(瞬间重叠也算)。 这样 (0+1)×24 = 24 次。 如果要求只计算在某个刻点上的重叠,那么justfortemp的第二个答案计算方法。不过得考虑起点,这样就是2次重叠。即0点和12点。 | |
![]() |
#21 得分:0
回复于: 2010-07-21 20:26:08
呵呵 楼上的能不能解释下位什么是分了59和11等份啊 注意保持大脑清醒哦! |
#22 得分:0
回复于: 2010-07-21 20:29:29
这里假设(我的)钟表是每一秒钟跳动一次的,而不是连续旋转的。这样,“21:48:49”在精度为240时(既认为把表盘按精度划分为240个格子)仍然被认为是重合的,但是当精度为280时就不认为重合了。
| |
![]() |
#23 得分:0
回复于: 2010-07-21 20:33:22
追击问题阿
你和我在操场上跑步 你跑1圈我跑12圈 必然我要追上你11次 就是我超过你11圈后我们一起回起点 快结贴拿分来 |
#24 得分:0
回复于: 2010-07-21 20:33:38
如果精度很高,那么结果是:只有两个时间:0:0:0和12:0:0。
| |
#25 得分:0
回复于: 2010-07-21 20:35:26
看清楚,钟表上总共三个针,可不是两个针。 | |
![]() |
#26 得分:0
回复于: 2010-07-21 20:37:14
11等分 和 59 等分一个圆 你认为两都除了起点刻度相同 中间的刻度还是能相同吗
|
![]() |
#27 得分:0
回复于: 2010-07-21 20:39:26
大师 运行结果好像有点问题 ... 8 07:37:38 9 07:38:39 ... 这应该是精度影响的结果吧 所以到后来就出现了: 24 22:54:55 |
#28 得分:0
回复于: 2010-07-21 20:42:30
时针:w1 = 360 / 12*3600 = 1/120 d/s
分针:w2= 360 / 3600 = 0.1 d/s 秒针:w3 = 360 / 60 = 6 d/s | |
![]() |
#29 得分:0
回复于: 2010-07-21 20:44:16
你的等份也要将起点计入到内 并不是说知道的重合就不计入了 |
![]() |
#30 得分:0
回复于: 2010-07-21 20:55:05
大师这样的计算也是不无道理 那我在后面都乘以60s*60m*12h/360°*(24/12) 那结果是不是 时针:2圈 分针:12*2圈 秒针:60*12*2圈 所以这样的表达只能用于计算了 呵呵看不出实际的…… 当然我们都知道它重叠了24圈(其中包括00:00:00) 只是重合时秒位的数值是否为正整数或零 这也是我们输出结果的关键 |
#31 得分:1
回复于: 2010-07-21 20:57:53
只有两次就是12点和0点的时候
| |
![]() |
#32 得分:0
回复于: 2010-07-21 21:01:07
这个在没有得出具体输出结果前还真不能下定论 我们可以采用人生如梦的想法去计算角度然后进行判断 只有秒可以取整 时和分都的取小数了吧 只是在输出的时候我们需要截取时和分的整数部分+秒 当然这一切都是理论阶段的思路 而此种方法只是预定构思方案中的一种 至于有没更好的方法还希望大家能各抒己见 |
#33 得分:0
回复于: 2010-07-21 21:02:36
以圈为单位,同时以秒针走一圈作为最小单位,分别记录一下时针、分针与秒针在圏中的位置,看它们是否重合,这是我的想法.
| |
#34 得分:2
回复于: 2010-07-21 21:05:53
你们只讨论怎么分析,正确答案到底是多少?22次?这个答案对不?
想得出合理的分析方法我觉得首先得明确的就是正确答案! | |
![]() |
#35 得分:0
回复于: 2010-07-21 21:07:50
恩
到目前可以这么想了 但是时三个针的位置如果表示 能精确到多少位 准确计算了这计算过程可就不简单了 呵呵 |
![]() |
#36 得分:0
回复于: 2010-07-21 21:09:24
“高手”知道了答案求过程 这貌似不是做事的最佳思维方式吧 倒过来只能说是有所帮助吧~ 呵呵 |
![]() |
#37 得分:0
回复于: 2010-07-21 21:18:00
如果不对秒位取整那从0~23
11、23点里面无重合产生 别的点都有 所以应该是22 如果考虑秒取整问题那这还需要高手继续努力 |
#38 得分:0
回复于: 2010-07-21 21:30:46
![]() | |
![]() |
#39 得分:0
回复于: 2010-07-21 23:12:16
刚回来 这就完了? 22次重合的假答案?
|
![]() |
#40 得分:0
回复于: 2010-07-21 23:15:04
nnd 我怎么迷上这个题目
一个圆周长3600*12 米 h m S 三人赛跑 三人都跑一周,则三人的速度为时钟费时12小时 12*3600秒 分钟费时一小时 3600秒 秒钟费时一分钟 60秒 时钟速度 3600*12/(3600*12)=1米每秒 分钟速度 3600*12/3600=12米每秒 秒钟速度 3600*12/60=720米每秒 h m S 三人赛跑 三人同一起点一起跑12小时后回到起点 ------------------- 来看分钟和时钟的赛跑 h跑1圈要12小时 m跑一圈要一小时 一天:h跑24小时2圈 m跑24小时 24圈 则从起点开始(追上次数为0)m 每追上 h一次就比h多跑一圈 m一共比h多跑22圈 则m追上h次数为22次 24小时两人同时回到起点 则 设起点时间为0 设m 第一次追上h的时间为X1 追上时他们跑的距离一样 设员的周长为L=3600*12 则 X1*1 +L = X1*12; X1=L/11 则在3600*12/11秒的时候 h m 离开起点后第一次相遇 此时他们重合国,则下一个X1秒后 h m又将再一次相遇 则时钟和分钟重合的时间分别为 0, 3600*12*1/11 ,3600*12*2/11..... 3600*12*11/11 (24小时内,则到3600*12*22/11) -------------------------------------------------- 再来看分钟和秒钟的赛跑 s跑1圈要一分钟 1/60小时 m跑一圈要一小时 一天:S跑24小时 24*60=1440圈 m跑24小时 24圈 则从起点开始(追上次数为0)m 每追上 h一次就比h多跑一圈 m一共比h多跑1416圈 则m追上h次数为1416次 24小时后两人又回到起点 则 设起点时间为0 设s 第一次追上m的时间为X1 追上时他们跑的距离一样 设员的周长为L=3600*12 则 X1*12 +L = X1*720; X1=L/708 则在3600*12/708=3600/59秒的时候 s m 离开起点后第一次相遇 此时他们重合,则下一个X1秒后 s m又将再一次相遇 则秒和分钟重合的时间分别为 0, 3600*1/59 ,3600*2/59..... (24小时内,则到3600*1416/59) 则要想三针重合 时钟与分钟相遇的时间要与 秒钟与分钟相遇的时间相同 由于 59与11互相为质数 则要重置分子分母比较 0,3600*12*1*59/(11*59),.....3600*12*22*59/(11*59) 0, 3600*1*11/(11*59), ....3600*1416*11/(59*11) 即比较 0,12*1*59,。。。。12*22*59---》》》0,708*1,708*2.。。。708*22 0,1*11, 1416*11 ---》》》0,11*1,11*2,。。。11*1416 所以重合时间点为 0, 708*11 708*22 0 11*354 11*1416 加上舍去的分子分母和3600 对应的真实重合时间为 0 秒重合, 3600 *708*11/(11*59)=43200秒=3600*12=12小时 重合 24小时重合 一天24小时 0秒重合算当天 24小时重合算下一天,则一共重合两次 |
![]() |
#41 得分:0
回复于: 2010-07-21 23:30:43
发现疏忽了一个问题
一只在拿两个针进行对比的 |
![]() |
#42 得分:0
回复于: 2010-07-21 23:32:17
楼上的鼓励下 加油 相信你ganggang的~ |
![]() |
#43 得分:0
回复于: 2010-07-21 23:54:29
所谓和这个答案根本不成立
时间:0:0:0 时间:1:5:5= 3600+300+5=3905秒 按时钟一秒走1米 分钟一秒走12米 秒钟一秒走720米 圆的周长为 3600*12 则3905秒后 时钟走了:3905米 距起点3905米 分钟走了:3905*12米 距起点 (3905*12)%(3600*12)=3660米 秒钟走了:3905*720米 距起点 (3905*720)%(3600*12)=3600米 时间:2:10:10 时间:3:15:15 时间:4:20:20 时间:5:25:25 时间:6:30:30 时间:7:35:35 时间:8:40:40 时间:9:45:45 时间:10:50:50 时间:11:55:55 |
![]() |
#44 得分:0
回复于: 2010-07-22 11:06:55
有点像了
刚绝像对的 呵呵 |
#45 得分:0
回复于: 2010-07-22 12:22:00
这题粗看很简单,答出重合24次的都是中学生思维...出这种题希望得到这个答案的一般也就是个中学生思维...
答出2次的算是成人思维了...但我看到只有sp1234对此题的条件提出疑问,高下立见... 答案也可能是十几次,条件不足...从某方面来说这个题是个面试的好题,以后可以用... | |
#46 得分:0
回复于: 2010-07-22 13:58:47
sp1234的思维很缜密啊。
| |
#47 得分:0
回复于: 2010-07-31 10:37:16
首先确定最小的运动单位:秒
其次是一天运行的次数:24(小时)*60(分)*60(秒)-1 再次是:每运行一秒:秒针转360/60度,分针转360/60度,时针转360/12度 接现就是if了,运行了N秒:秒针所在度数:(N*6)模360 分针度数:(N/60*6)模360 时针度数(N/3600*30)模360 三者完全相等就是重合一次,完毕。 | |
#48 得分:0
回复于: 2010-11-10 15:05:57
开的几个脑残 误导人啊!小学数学!
| |
#49 得分:0
回复于: 2010-11-10 15:30:00
笨蛋就是有那么多 而且废话多
设w为时针的角速度,(每小时为30度),w1为时针的角速度(每小时为360度) w=30度/小时=(1/120)度/秒 w1=360度/小时=(12/120)度/秒 假设他们在零时零分零秒汇合后!开始出发,用了t秒分针和秒针重合 则有 w1*t-w*t=360*k(k=1,2,3,4,5,........) 数字带入以后得 11/120*t=360*k t=](120*360)/11]*k(秒) 由于时间的单位只能是单位秒,就是t为整数! /**不知道t必须为整数的人,可以不用看了,你的智商不会看的懂得**/ 由此可知 k必须为11的倍数 当k=11时 t=120*360=60*60*12(秒) t=12(小时) k=22时 t=24(小时) 所以一天时针和分针的重合时间分别为0:0:0 和12:0:0 和0:0:0 下面考虑秒针,当时针和分针在上述时间重合时 秒针正好指向12点 而时针 分针也分别指向12点 故 在24小时内时针 分针 秒针 重和的时间为0:0:0 和12:0:0 和0:0:0 由于一天中 刚到0:0:0时是一天的开始 一天的最后一秒是24:59:59--0:0:0之间的这一秒 因此一天中重合次数只能为两次 正确答案为 2次 | |
#50 得分:0
回复于: 2010-11-10 15:32:02
笨蛋就是有那么多 而且废话多(有点小错误,修改一下)
设w为时针的角速度,(每小时为30度),w1为分针的角速度(每小时为360度) w=30度/小时=(1/120)度/秒 w1=360度/小时=(12/120)度/秒 假设他们在零时零分零秒汇合后!开始出发,用了t秒分针和时针重合 则有 w1*t-w*t=360*k(k=1,2,3,4,5,........) 数字带入以后得 11/120*t=360*k t=[(120*360)/11]*k(秒) 由于时间的单位只能是单位秒,就是t为整数! /**不知道t必须为整数的人,可以不用看了,你的智商不会看的懂得**/ 由此可知 k必须为11的倍数 当k=11时 t=120*360=60*60*12(秒) t=12(小时) k=22时 t=24(小时) 所以一天时针和分针的重合时间分别为0:0:0 和12:0:0 和0:0:0 下面考虑秒针,当时针和分针在上述时间重合时 秒针正好指向12点 而时针 分针也分别指向12点 故 在24小时内时针 分针 秒针 重和的时间为0:0:0 和12:0:0 和0:0:0 由于一天中 刚到0:0:0时是一天的开始 一天的最后一秒是24:59:59--0:0:0之间的这一秒 因此一天中重合次数只能为两次 正确答案为 2次 |