R·ex / Zeng


音游狗、安全狗、攻城狮、业余设计师、段子手、苦学日语的少年。

从找数字的规律说起

注意:本文发布于 2438 天前,文章中的一些内容可能已经过时。

本文可能过于主观,如有不同观点,欢迎回复。想看总结的可以直接跳到 这里

找规律

看到了一道招聘的试题:-2/5,1/5,-8/750,()

不得不说,此生最痛恨的问题之一就是找规律。关于这类问题,有人认为有意义,有人认为耗时间,这两种意见知乎上都说了很多。认为有意义的人,一个观点是“历史上很多东西都是找规律找出来的,例如物理学”,或者“可以从众多答案中找出最好的那个也是一种能力”,认为耗时间的人,直接举出了拉格朗日插值这个大杀器(简单易懂的版本可以看 这里)。如果用这个大杀器,那么这道题的答案应该是 -129/125,具体步骤可以看下面。

0

不得不说这种方法简直是作弊。然而就是很爽啊。

此外有个看起来还算有点道理的规律:第二项是第一项的负二分之一,所以第四项也应该是第三项的负二分之一,所以应该是 2/375

然而这道题的标准答案是这样的:答案是 11/375,因为如果把负号放到分母上,然后将第一项分子分母同时乘以二,就成了 4/(-10),1/5,8/(-750),11/375,然后看分子 4,1,8,11,第四项减第一项等于七,第三项减第二项也等于七;看分母 -10,5,-750,375,偶数项是奇数项的负二分之一。

WTF?先将第一项分子分母同时乘以二?出题人你咋不上天……

不得不说,在小学数学题中,找规律是一个很常见的题,可以用来锻炼小学生的思维能力,这类题目也有个不成文的约定:只能使用小学生可以理解的内容,例如有限次的加减乘除。然而在职场,这种题目的意义何在?可能的用处就是作为 犹太问题,在面试的时候刷掉一些自己不满意但又不好意思直接刷的人吧。

语法问题

许多考二级的同学通常会被一类题目恶心到,例如写出下面语句的运行结果:

int a = 0;
printf("%d %d %d\n", a++, ++a, a);

我不说答案是多少了,因为在实际编码中,有脑子的人都不会这么写。而且你扔进 GCC 里面编译,会有这样的提示:

$ gcc test.c -Wall -o test
test.c: In function 'main':
test.c:5:31: warning: operation on 'a' may be undefined [-Wsequence-point]
     printf("%d %d %d\n", a++, ++a, a);
                               ^~~
test.c:5:31: warning: operation on 'a' may be undefined [-Wsequence-point]

就好比我问你:零除以零等于多少?必须给我一个确切的数字。你猜答案是多少?

当然还有另一类语法问题,例如这道 JavaScript 的题:

const a = ['1', '2', '3'].map(parseInt);
console.log(a);

这个问题的答案是 [1, NaN, NaN]。究其原因,是因为 parseInt 函数其实是可以传两个参数的,第二个参数用来控制进制。如果等价转换成这样,估计大多数人就明白为什么了:

const a = ['1', '2', '3'].map((item, index) => parseInt(item, index));
console.log(a);

不同于上面那道 C 语言的题,这个确实是我们经常遇到的坑。所以有必要通过“要么培训要么面试”的方式,让即将为自己服务的人避免这个错误。

过度面试

刚上大学的时候,我有幸拿到了培优班的面试资格。面试的时候,我们每五个人为一组,进入同一个房间,每个人都会抽到一张写了不同问题的纸条,过几分钟之后,每个人分别给老师阐述自己的解答。有趣的是,几轮下来,其他人抽到的问题我基本都会,而我自己抽到的问题基本都不会……然而最终还是通过了,不知道评判依据是什么。不过后来因为种种原因,我的绩点没跟上,于是退班了,这是我自己的问题,没什么可说的。

这一段主要是想谈一谈面试的时候被问到的一些奇怪的问题。

问:有 10000 根头发的人不是秃头;如果有 N 根头发的人不是秃头,那么有 N-1 根头发的人也不是秃头;用数学归纳法,有零根头发的人不是秃头,因此所有的人都不是秃头。这种说法有什么问题?

之所以先放这个,因为问我这个问题的老师刚好是秃头。虽然“秃头悖论”的解答很久之前我就知道了,但是边看着一个秃头的老师边说“秃头”总是觉得怪怪的……

问:你在一个只能从下往上的电梯里。每层楼都有宝石,你只能选择一次,怎样才能尽可能选择到最大的那个宝石?

这是另外一个同学抽到的题目。经典的“在线雇佣问题”,算法导论里面讲了,最大的概率是 1/e。这个问题也在网上搞出了好多版本,例如:开学季,你作为一个学长要去接学妹,假设一共有 N 个学妹依次到站,你只能选择一次,怎样尽可能选择到那个最漂亮的学妹?

还有好多问题,不一一列举了。这些问题几乎全都是在网上流传已久的“数学脑筋急转弯问题”,我不知道这些问题跟培优班的关系是什么,因为这唯一能考察出来的素质就是学生课外的阅读量,以及阅读的内容是否是考察的那些问题。对于智商、解题能力、合作能力等培优班可能需要的能力完全没有考察。

所以你想表达什么?

既然你想尽快找到适合自己的员工,就少扯那些没用的,你需要员工有什么样的素质,就按照这些素质来考察面试者,而不是通过一些小聪明来显示你比面试者更牛逼。

如有不同观点,欢迎回复~

Disqus 加载中……如未能加载,请将 disqus.com 和 disquscdn.com 加入白名单。

这是我们共同度过的

第 3077 天