疑难杂症:面试中遇到完全不懂的题目,怎么办

Posted beyondma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了疑难杂症:面试中遇到完全不懂的题目,怎么办相关的知识,希望对你有一定的参考价值。

 

最近在csdn的问题上看到一个有关离散数学的求助,说话我的离散数学知识基本上已经还给老师了,不过看到悬赏金额有300元之巨,我还是点进去瞧了一下(链接在此),结果发现还是能在完全陌生的领域进行分析并蒙出结论的。

解完题之后呢,笔者进行了复盘,发现站在面试官的角度来看,只要能表达出来下面的思考过程基本上即便答案不对,也肯定能够通关,而且这个解决问题的思考方式也和排除生产环境的一些难题特别契合,因此总结一下分享给大家。

遇到英文看不懂怎么办

这个问答的求助有两道题,先说第一题,如果英文过关,完全看得懂题干,那这道题对你只是解三元方程非常简单,而如果英文不过关,如果能知道mod是取余,degree是方程的阶数,并抓住这两个关键信息,那么这题也就成功了80%。

先说degree 2 at most这个关键点,这也就是说f(x)是一个最高只有二次的方程,一元二次方程可以表示成f(x)=ax^2+bx+c,那么f(1)=a*1^1+b*1+c=a+b+c; f(2)=a*2^2+b*2+c=4a+2b+c,依此类推,题目中给出来了从f(1)到f(5)的值,这对于解三元方程来说已经足够了,题目中说f(1)到f(5)的值有一个是错的,这实际上就是找出四个能给出相同解的方程,剩下那个不合群的就是错的。

 

另外一个关键信息是mod 7,也就是取除7的余数,这个在一开始我还没太看懂这个信息的用处。但后来看到题目最后的括号中强调的内容我明白了,这是一个所有算术结果全部要取余操作,也就是在这个mod7的体系下没有大于7的数,所有的结果都要除7取余数,这个取余操作这里面有两个推论。

1. 遇到减不开的情况,如2-6的情况,就要进行借位,注意这里借位借到的是7而不是10,即2-6=2+7-6=3

2. 乘法同余,比如11*a mod 7=4*a mod 7,即除以7余数相同的11和4他们与作何其它数相乘所产生的结果也相等。 我们既然知道了从f(1)到f(5)五个值分别是1,4,0,6,0,那么把x代入,可他们转换成有关于a,b,c三个系数的三元一次方程组如下:

f(1)=a+b+c=1

f(2)=4*a+2*b+c=4

f(3)=9*a+3*b+c=0

 f(4)=16*a+4*b+c=6

f(5)= 25*a+5*b+c=0

因为16和2除以7都余2,由刚刚所说的性质2可知,如16*a可以转换为2*a,那么把所有大于7的数全部转换,转换后的方程组如下:

a+b+c=1

4*a+2*b+c=4

2*a+3*b+c=0

2*a+4*b+c=6

4*a+5*b+c=0

其中取三个方程就可以解方程组了,接下来解方程组即可。

联立前三个等式得a=0,b=3,c=5,联立中间三个等式得a=5,b=6,c=0;联立后三个等式得a=1,b=6,c=1,再联立1.3.5.三个等式得a=1,b=6,c=1,由此可知a=1,b=6,c=1,再将a=1,b=6,c=1代入多项式,发现f(2)应该等于3。 因此f(2)错了,正确值是3 注意解方程时如遇减不开的情况,参照性质1借位即可。

遇到字都看得懂,但连起来就是读不懂的题目怎么办?

第二题就比较考验数感而不是英文了,因为即便你英文很强如果不知道帽子游戏和错码检查与更正(hat game error correction and detection)的背景知识,那也是白搭。

虽然不了解背景知识纯靠数感蒙,但是软饭也要硬吃, 这道题的关键信息是最后三行数列是完全确定的,英文信息虽然不能完全看懂但蒙一下大概能知道他说的意思大概是最后三行要不支持联立求解,要不就是集合S,蒙一下S的含义应该就是不会出现一个数列出现仅某一位(原文是exactly one cordinate)与S给出的信息不同但其余位置完全相同的情况。 当然另一个隐含条件是所有的运算都是以2为模的,也就是只有两个取值,要么是1要么是0。

 

先说第二行的答案为什么要蒙是1,比较第二行和第五行可知,除了未知的第10列,其余位置均与第二行与第五行完全相同,如果纯评数感的话你就应该猜这两行完全一样,如果面试官非要你解释推理过程,那么是因为根据刚刚所说的推论一可知,第二行与第五行肯定完全相同,如果第10列不同的话,那么第二行和第五行就互相矛盾了。因此第四行的第10列的1,就是第二行第10列要填的答案。

 

再说第三行是为什么要蒙是0,原因也很简单,因为第三行和第五行只有第10列未知,第11列相反,因此第三行与第五行的第10列不可能相同,因为如果第三行与第五行第10列相同,那么第三行与第五行就会出现只有第11列相反的情况,这又与推论一不符,因此第三行第10列只能与第五行第10列相反也就是0

 

最后是第四行为什么是1,这个答案不像上两个那么肯定,蒙的过程如下,题目中说后三行可以联立,因此把第六与第七行按照mod2的方式相加得到第八行,你会看到第八行与第三行相比在11列与14列是相反的,假定第八行与第三行在其它列完全相同,只有第11与14列相反是符合规则的,也就是说假如我们通过反转第八行的第11列与第14列得出一个第九行,那么第九行应该就是第四行了。因此从这个角度上讲六,七行联立得第八行,再反转得到11列与14列第九行的第10列是1,因此基本确认第四列就是1。

 

还是刚才那句话只要你思考过程对了,题解没解出来不太重要,这两道题其实更多还是考验面试者对于数字及编码的感觉。当然这个问题也有个延伸思考题,如果我想在任何时候都能算出第10列缺失的数到底是什么,那么至少需要多少检验位,如果大家感兴趣我会在下次博客详细讲一下帽子游戏和错码检测及更正。

以上是关于疑难杂症:面试中遇到完全不懂的题目,怎么办的主要内容,如果未能解决你的问题,请参考以下文章

经典问题:数据有误,一定要重传吗?

经典问题:数据有误,一定要重传吗?

Java面试题~面试官:你是怎么定位排查诊断生产环境的Bug的?

MySQL如何配置读写分离?

excel2010 sql完全应用怎么样

sed从入门到深入修炼目录