[TL] 今天遇到的一道笔试题

3 views
Skip to first unread message

Mingliang ZHU

unread,
Oct 31, 2009, 9:59:58 AM10/31/09
to pon...@googlegroups.com
int Test(int i)
{
    int Res = 0;
    while(i != 1)
    {
        ++Res;
        if(i % 2 == 0)
            i /= 2;
        else
            i = i * 3 + 1;
    }
    return Res;
}

求 Test(125) 的值。

初看还以为跟二进制啥的有关,不过推了一下完全没头绪。
回来跑了一把知道结果是 108
总时间很充足,数学非常照的估计可以在10多分钟内算出来?

当然原题是选择题,选项有:
A. 90(好象是) B. 108  C. 125  D. 死循环
所以有排除法的思路也可以~~

Best wishes,
Mingliang ZHU

安帛伟

unread,
Oct 31, 2009, 10:40:56 AM10/31/09
to pon...@googlegroups.com
如下108次,貌似没啥规律:
376 188 94 47 142 71 214 107 322 161 484 242 121 364 182 91 274 137 412 206 103 310 155 466 233 700 350 175 526 263 790 395 1186 593 1780 890 445 1336 668 334 167 502 251 754 377 1132 566 283 850 425 1276 638 319 958 479 1438 719 2158 1079
3238 1619 4858 2429 7288 3644 1822 911 2734 1367 4102 2051 6154 3077 9232 4616 2308 1154 577 1732 866 433 1300 650 325 976 488 244 122 61 184 92 46 23 70 35 106 53 160 80 40 20 10 5 16 8 4 2 1

 
2009/10/31 Mingliang ZHU <mingli...@gmail.com>

Shuo Chen

unread,
Oct 31, 2009, 11:35:40 AM10/31/09
to TopLanguage
角谷猜想。笔试遇到就硬算吧。

安帛伟

unread,
Oct 31, 2009, 11:47:19 AM10/31/09
to pon...@googlegroups.com
如果知道是角谷猜想,至少可以排除选项D。

2009/10/31 Shuo Chen <gian...@gmail.com>

Lucas Zhang

unread,
Oct 31, 2009, 11:51:56 AM10/31/09
to pon...@googlegroups.com
这可是传说中的数学难题啊
不过可以变成这个样子:
		while(1)
{
if(i%2==1)
{ i = (3*i+1)>>1; Res += 2;}
else
{ i = i>>1; ++Res;}
}
这样应该可以算得快一些~

2009/10/31 Mingliang ZHU <mingli...@gmail.com>



--
=============
Thank you
Zhang Qing
32B.gif

Lucas Zhang

unread,
Oct 31, 2009, 11:53:21 AM10/31/09
to pon...@googlegroups.com
应该是while(i != 1)
                while( i != 1 )

{
if(i%2==1)

{ i = (3*i+1)>>1; Res += 2;}

else
{ i = i>>1; ++Res;}
}


2009/10/31 Lucas Zhang <zhangq...@gmail.com>
32B.gif

guihua wu

unread,
Oct 31, 2009, 10:28:44 AM10/31/09
to pon...@googlegroups.com
你今天参加的是vmware的吧
那个学校滴啊?

2009/10/31 Mingliang ZHU <mingli...@gmail.com>

Mingliang ZHU

unread,
Nov 1, 2009, 12:20:54 AM11/1/09
to pon...@googlegroups.com
Orz,那还是认栽了
以后知道了,猜个中不溜到答案还是靠谱的~~

不过这家比较bt,选择题猜错了得倒扣分……

Best wishes,
Mingliang ZHU

2009/10/31 Shuo Chen <gian...@gmail.com>:

Mingliang ZHU

unread,
Nov 1, 2009, 12:21:40 AM11/1/09
to pon...@googlegroups.com
中科院
你呢?今天emc去不?

Best wishes,
Mingliang ZHU

2009/10/31 guihua wu <guihua...@gmail.com>:

guihua wu

unread,
Nov 1, 2009, 4:10:50 AM11/1/09
to pon...@googlegroups.com
emc一样变态的题,不去了,西电滴

2009/11/1 Mingliang ZHU <mingli...@gmail.com>

Li Yang

unread,
Nov 1, 2009, 10:56:59 AM11/1/09
to pon...@googlegroups.com

我想知道这种只能计算的问题到底考的对方什么呢?
难道是 在时间有限的情况下对考题的取舍能力?
2009/10/31 Lucas Zhang <zhangq...@gmail.com>



--
While(!success=try())

Lucas Zhang

unread,
Nov 1, 2009, 11:16:27 PM11/1/09
to pon...@googlegroups.com
测试忍耐度...

2009/11/1 Li Yang <myic...@gmail.com>
32B.gif

halida

unread,
Nov 3, 2009, 8:09:21 AM11/3/09
to TopLanguage
这种题是为了让平均分变低,好筛出天才出来。

On Nov 2, 12:16 pm, Lucas Zhang <zhangqing1...@gmail.com> wrote:
> 测试忍耐度...
>
> 2009/11/1 Li Yang <myice...@gmail.com>
>
>
>
>
>
>
>
> > 我想知道这种只能计算的问题到底考的对方什么呢?
> > 难道是 在时间有限的情况下对考题的取舍能力?
> > 2009/10/31 Lucas Zhang <zhangqing1...@gmail.com>
>
> >> 这可是传说中的数学难题啊[?]


>
> >> 不过可以变成这个样子:
>
> >> while(1)
> >> {
> >> if(i%2==1)
>
> >> { i = (3*i+1)>>1; Res += 2;}
>
> >> else
> >> { i = i>>1; ++Res;}
> >> }
>
> >> 这样应该可以算得快一些~
>

> >> 2009/10/31 Mingliang ZHU <mingliang....@gmail.com>

> 32B.gif
> < 1KViewDownload

Chris#24

unread,
Nov 3, 2009, 9:52:26 AM11/3/09
to TopLanguage
应该是考察面对问题时的思考方式和知识面吧
如果你能说出是角谷猜想,应该是很加分的

谢铸聪

unread,
Nov 3, 2009, 9:09:52 AM11/3/09
to pon...@googlegroups.com

貌似PKU上面有一道题类似这个。。。

Moses

unread,
Nov 4, 2009, 1:30:08 AM11/4/09
to pon...@googlegroups.com
有没有可能出现死循环呢?

2009/11/3 谢铸聪 <zhuco...@gmail.com>

貌似PKU上面有一道题类似这个。。。




--
       此致
                               敬礼


--

----------------------------
  泠泠七弦上,静听松风寒。
http://www.liuxuan.net
moses
-----------------------------

WindyWinter

unread,
Nov 4, 2009, 2:03:47 AM11/4/09
to pon...@googlegroups.com
这个是角谷猜想,猜想的内容是不会出现死循环。目前也没发现出现死循环的数字。
Soli Deo gloria,
yours WindyWinter
and http://www.briefdream.com


2009/11/4 Moses <lx0...@gmail.com>

jun lin

unread,
Nov 4, 2009, 4:09:46 AM11/4/09
to pon...@googlegroups.com
猜想。。。应该还没有被证明的吧。

2009/11/4 WindyWinter <bsl...@gmail.com>

Moses

unread,
Nov 4, 2009, 4:01:52 AM11/4/09
to pon...@googlegroups.com
谢谢!

2009/11/4 WindyWinter <bsl...@gmail.com>

line head

unread,
Nov 5, 2009, 9:11:04 PM11/5/09
to pon...@googlegroups.com
我记得编程珠玑里有道练习题就是这个类似的。有趣的是后面的习题解答说如果你做出来,请找最近的数学学院申请博士来着

2009/11/4 Moses <lx0...@gmail.com>:

Lucas Zhang

unread,
Nov 5, 2009, 10:18:37 PM11/5/09
to pon...@googlegroups.com

所以我觉得读编程珠玑是一种享受 读多少遍都不会觉得腻
2009/11/6 line head <luckhe...@gmail.com>
32B.gif
Reply all
Reply to author
Forward
0 new messages