|
wxcute
中级用户
积分 458
发帖 211
注册 2006-7-26
状态 离线
|
『第
16 楼』:
根据大伙的理解,理想钟应该是重合23次。
0-24 包含 25 个整点,24 个小时;
11-13 两个整点间只有 12 点重合,同理 23-24 之间只有24;
0-24 相当于一整天多一秒,而刚好这一秒就是重合的,所以是 22+1=23 次。
|
┌───────┐
├→学习→实践→┤
└───────┘ |
|
2009-1-13 12:45 |
|
|
zh159
金牌会员
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
『第
17 楼』:
时间象流水一样是连续的,而不是跳跃式的,所以理想钟应该象 8 楼说的
|
|
|
2009-1-13 18:16 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
18 楼』:
(网上找的,没学过证明看不懂)
只有两次
假设时针的角速度是ω(ω=π/6每小时),则分针的角速度为12ω,秒针的角速度为72ω。分针与时针再次重合的时间为t,则有12ωt- ωt=2π,t=12/11小时,换算成时分秒为1小时5分27.3秒,显然秒针不与时针分针重合,同样可以算出其它10次分针与时针重合时秒针都不能与它们重合。只有在正12点和0点时才会重。
证明:将时针视为静止,考察分针,秒针对它的相对速度:
12个小时作为时间单位“1”,“圈/12小时”作为速度单位,
则分针速度为11,秒针速度为719。
由于11与719互质,记12小时/(11*719)为时间单位Δ,
则分针与时针重合当且仅当 t=719kΔ k∈Z
秒针与时针重合当且仅当 t=11jΔ j∈Z
而719与11的最小公倍数为11*719,所以若t=0时三针重合,则下一次三针重合
必然在t=11*719*Δ时,即t=12点。
|
|
2009-1-14 00:13 |
|
|
slore
铂金会员
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
19 楼』:
看你怎样理解钟针的转动,答案就不唯一了。
说了,如果按角度算是得不到我的结果的。
这个题没有说针的转动方式。有一直都走的钟,大多数设计的
针还是一跳一跳的。。。最小摆幅为1秒。。。
这种针不是匀速圆周运动的……上面的证明就不适用了。
|
S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2009-1-14 10:25 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
20 楼』:
12小时重合
@echo off
for /l %%i in (0 1 11) do (
setlocal
set/a n=%%i*60
call:lp %%i
endlocal
)
pause&goto :eof
:lp
set/a d=%d%%n:~,1%%%11,m=%d%%n:~,1%/11
if "%i%"=="0" set i=
set i=%i%%m%
set n=%n:~1%
if defined n goto lp
set/a d=%1*60-(11*i)
:lp1
set/a m=d*10/11,w+=1
if "%j%"=="0" set j=
if %w% lss 5 set j=%j%%m%&set/a d=d*10%%11&goto lp1
set/a j*=6,h+=%1+i/60,i%%=60
set h=0%h%&set i=0%i%&set j=0%j%
echo %h:~-2%:%i:~-2%:%j:~-5,2%.%j:~-3,2%
goto :eof [ Last edited by terse on 2009-1-15 at 11:17 ]
此帖被 +2 点积分 点击查看详情 评分人:【 exzzz 】 | 分数: +2 | 时间:2009-1-22 00:23 |
|
|
简单!简单!再简单! |
|
2009-1-14 16:41 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
21 楼』:
Quote: | Originally posted by terse at 2009-1-14 16:41:
12小时重合
[code]
@echo off
for /l %%i in (0 1 11) do (
setlocal
set/a n=%%i*60
call:lp %%i
endlocal
)
pause&goto :eof
:lp
set/a d=%d%%n:~,1%%%11,m=%d%%n:~,1%/11
... |
|
非常版主这个看不懂啊,简单介绍下算法吧。
|
|
2009-1-14 23:41 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
22 楼』:
Quote: | Originally posted by linee at 2009-1-14 23:41:
非常版主这个看不懂啊,简单介绍下算法吧。 |
|
我的思路是这样 探讨下不知正确否
假设表面为60刻度 一小时是5个刻度 x个刻度就是 0点后的x/5刻度 同样y分钟就是y/60小时 到下一个重合点的时候 两刻度相对0点后刻度一样 即x/5小时-y/60小时是个整数 因为分走多一圈 所以一直递增 1 因为刻度一样所以我想 X/5-Y/60的结果应该是 0-11递增 这里的x和y刻度相等也就是X/5-X/60
刚用批写了个 由此题派生出的另一题:
就是时针和分针在什么刻度可以对调且是合理的比如:
07:43:13.00
07:48:15.10
07:53:17.20
07:58:19.29
08:03:21.39
08:08:23.49
08:13:25.59
08:18:27.69
08:23:29.79
08:28:31.88
08:33:33.98
08:38:36.07
|
简单!简单!再简单! |
|
2009-1-15 02:40 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
23 楼』:
Quote: | Originally posted by terse at 2009-1-15 02:40:
我的思路是这样 探讨下不知正确否
假设表面为60刻度 一小时是5个刻度 x个刻度就是 0点后的x/5刻度 同样y分钟就是y/60小时 到下一个重合点的时候 ... |
|
应该是正确的,与我计算的非常相似(我是按时针分针每过12/11时刻重合一次来算的),如下图:
怎么没图呢?
算了,就文本说明吧,你这个计算下来跟我计算的(前面提供过)非常相似,只有一个时刻异常,就是09:49这个时刻,你这个计算的是09:49:54.540,我前面提供是的09:49:05.45,一个54一个05差的不是一点半点,有点奇怪。
先分析下你的代码看看。
[ Last edited by linee on 2009-1-15 at 09:54 ]
|
|
2009-1-15 09:28 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
24 楼』:
Quote: | Originally posted by linee at 2009-1-15 09:28:
....一个54一个05 |
|
取位错了 已修正
|
简单!简单!再简单! |
|
2009-1-15 11:18 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
25 楼』:
Quote: | Originally posted by terse at 2009-1-15 02:40:
我的思路是这样 探讨下不知正确否
假设表面为60刻度 一小时是5个刻度 x个刻度就是 0点后的x/5刻度 同样y分钟就是y/60小时 到下一个重合点的时候 ... |
|
分析下来,你这个的结果应该就相当于每过12/11时刻重合一次,尝试修改你的代码如下,希望不要介意。
@echo off
for /l %%i in (0 1 11) do (
setlocal
set/a n=%%i*60
call:lp %%i
endlocal
)
pause&goto :eof
:lp
set/a d=%n%%%11,i=%n%/11
set/a j=d*10000/11
set/a j*=6,h=%1+i/60,i%%=60
set h=0%h%&set i=0%i%&set j=0%j%
echo %h:~-2%:%i:~-2%:%j:~-5,2%.%j:~-3,2%
goto :eof
|
|
2009-1-15 15:10 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
26 楼』:
我实际解了上面程式 你简化很多 很好
再讨论下时针和分针在什么刻度可以对调且是合理的情况
其中重合情况 作了提示
@echo off
for /l %%i in (0 1 11) do (
for /l %%j in (0 1 11) do (
setlocal enabledelayedexpansion
set/a n=^(%%j*12+%%i^)*60
set/a d=n%%143,i=n/143,j=d*10000/143,j*=6,h=%%i+i/60,i%%=60
set h=0!h!&set i=00!i!&set j=00!j!
if %%i equ %%j (echo 表针重合 echo !h:~-2!:!i:~-2!:!j:~-5,2!.!j:~-3,2!
) else echo !h:~-2!:!i:~-2!:!j:~-5,2!.!j:~-3,2!
endlocal
))
pause&goto :eof 重合的代码 放在for里效率高点 前面的call出是因为考虑小数 现在这样直接可以了
@echo off
for /l %%i in (0 1 11) do (
setlocal enabledelayedexpansion
set/a n=%%i*60,d=n%%11,i=n/11,j=d*10000/11,j*=6,h=%%i+i/60,i%%=60
set h=0!h!&set i=00!i!&set j=00!j!
echo !h:~-2!:!i:~-2!:!j:~-5,2!.!j:~-3,2!
endlocal
)
pause [ Last edited by terse on 2009-1-18 at 14:51 ]
|
简单!简单!再简单! |
|
2009-1-15 15:26 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
|
2009-1-15 17:26 |
|
|
terse
银牌会员
积分 2404
发帖 946
注册 2005-9-8
状态 离线
|
『第
28 楼』:
Quote: | Originally posted by linee at 2009-1-15 17:26:
时针分针对调是什么意思? |
|
比如 重合时时针分针对调位置肯定是合理的 如3点的时候 对调位置显然是不合理的 因为时针12点的时候 分针绝不会在3点吧
|
简单!简单!再简单! |
|
2009-1-15 17:33 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
29 楼』:
Quote: | Originally posted by terse at 2009-1-15 17:33:
比如 重合时时针分针对调位置肯定是合理的 如3点的时候 对调位置显然是不合理的 因为时针12点的时候 分针绝不会在3点吧 |
|
有点难理解,不想研究了。
|
|
2009-1-16 23:03 |
|
|
linee
初级用户
积分 94
发帖 49
注册 2008-12-14
状态 离线
|
『第
30 楼』:
我来发一个看如何,
惭愧啊,书到用时方恨少,总觉得表达不清楚,我很努力了,将就看吧。欢迎指正。
:: 时钟三针重合问题:
::
:: 思路:先找时针分针重合的位置s1,再找此时秒针的位置s2,
:: 如果s2=s1则三针重合。从0点比对到24点结束。
::
:: 时针分针第一次重合发生在1点到2点之间,设此时刻时间为t,
:: 时针角速度为w,此时时针行进wt,分针角速度为时针的12倍,
:: 有分针行进12wt,此时分针比时针多转一圈(12w),于是有:
:: 12wt-wt=12w,t=12/11
:: 此时时针位置wt=w*12/11=(1/11)*12w,相当于1/11圈,可取
:: s1=1/11
:: 又秒针角速度是时针的720倍,此时秒针行进720wt,秒针位置
:: 720wt=720w*12/11=(65+5/11)*12w
:: 相当于65又5/11圈,可取
:: s2=5/11
:: 比对s1不等于s2,知道此时三针不重合,因cmd不支持浮点,
:: s1,s2的比对程序改除11为对11求余后再比对。
::
@echo off&setlocal enabledelayedexpansion
for /l %%i in (0,1,22) do (
set/a s1=%%i %%11,s2=%%i*5%%11,i=%%i+1
set/a h=%%i*12/11,m=%%i*60/11%%60,s=%%i*300/11%%60,sh=%%i*300%%11,sh*=100/11
for %%j in (h m s sh i) do if !%%j! lss 10 set %%j=0!%%j!
set /p=时分针重合_!i! !h!:!m!:!s!.!sh! <nul
if !s1! equ !s2! (set/a j+=1&echo 三针重合_!j!) else echo.
)
pause [ Last edited by linee on 2009-1-16 at 23:14 ]
|
|
2009-1-16 23:06 |
|