作者LPH66 ((short)(-15074))
看板Inference
标题Re: [问题] 找规律
时间Wed Nov 12 11:33:32 2008
※ 引述《bluehaerts (5858笨58)》之铭言:
: 1. 有1000人照编号排一行 1,2,3报数
: 报到3的人退出 其余往前靠拢
: 重复进行 做到剩最後3个人为止
: 请问这3个人分别再原队伍的第几号位子??
先看看几次之後会剩3个人:
1000 => 667 => 445 => 297 => 198 => 132 => 88 => 59 => 40 => 27
=> 18 => 12 => 8 => 6 => 4 => 3
这样是15次
再来像drtesy版友一样来观察存活者的号码变化
这里我把每个人也从0编号起
首先 只要一变成3k+2 下一轮就出局
然後不是3k+2的人的号码就会减去前面出局的人数 = 他的号码除以3的整数部份
反过来 只要他这轮活下来了
那他上一轮的号码就是这一轮的号码加上这一轮号码除以2的整数部份
也就是这轮活下来的3 上一轮是3+1=4 再上一轮是4+2=6 etc.
那麽 15轮之後活下来的2 (第三个人)
在14轮是2+1=3 13轮是3+1=4 12轮是4+2=6 11轮是6+3=9
10轮是9+4=13 9轮是13+6=19 8轮是19+9=28 7轮是28+14=42
6轮是42+21=63 5轮是63+31=94 4轮是94+47=141 3轮是141+70=211
2轮是211+105=316 1轮是316+158=474 0轮是474+237=711
因此留下来的第三个人就会是我的编号的711 也就是第712个人
--
"LPH" is for "Let Program Heal us"....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.84
1F:推 bluehaerts:太神了 11/12 12:31
2F:推 mike7788:br 11/12 12:39
3F:推 east101010:我写个c语言程式跑出来的结果也是712是第三位仁兄 11/12 16:28
4F:推 bluehaerts:楼上这位大大 我想看看C的程式 请问可以寄给我吗 11/12 17:56
5F:→ bluehaerts:C的新手 不知道 要从哪下手 11/12 17:58
6F:推 allen65535:原来这题本来就是C语言的作业 XD 11/18 17:09
7F:推 b60624563:可不可以也寄给我?? 我用VB有写出来.. 可是方法很笨.. 02/17 01:53