Featured image of post quant puzzles 记录

quant puzzles 记录

  • 从最简化的情况入手,严格按照规则,推演会发生什么。这个过程会让我对于题目定义熟悉起来,注意要严格地推演,不要想当然,不要怕麻烦。例如赛马问题,我很快就开始想法当然了,因为我这样想对我来说最简单;但是不对。

  • 这步达成后,我才能继续推下去,不然会觉得根本无从下手。我需要动一下,才能懂到底发生了什么。例如coin piles,虽然不知道为什么要翻一下,翻一下代表着什么,但也翻一下然后数一下,这样就知道是怎么回事了。

  • 还有一些定义问题,一开始必须要弄清楚。x^(a^b)不等于(x^a)^b

  • 然后之后我就能找到哪些会变哪些不会。例如,狼羊问题,狼吃羊也会变羊,羊的数目不变。

  • 推导过程可能遇到比较复杂的变化,此时需要尽可能找到简洁的记法来描述问题,不然我很容易在这个过程中出错,例如过桥问题。一定要严格的推演,不然会认为返回对岸的人必须是之前过桥的人中的一个,从而出错。

  • 生日问题,也是需要找到简洁的记法来描述问题的。

  • burning ropes,要找到一种方式去描述问题,找到一个具体的形式去固定这个问题的意义,例如我想到的是曲线下方围成的面积对应时间。这样可以证明两端一起烧的时候可以平分总时间,不然还不太方便证明,会变成纯粹逻辑问题,对我有点抽象。

  • 找坏球问题,注意一次称量能分辨的问题球是什么,最后一次2个2个称量肯定不行,所以必须引入组合,a中1个b中1个c中1个这样的。需要尝试称量的组合,注意耐心和记法,不要混乱。

  • quant salary,随机数加密,然后每个人的薪水加上每个人的随机数的和报上来就行,这样如果已知所有随机数,可以得到所有人薪水的平均数。

  • 苏丹50囚犯杯子上下问题,杯子一开始朝下是已知的,怎么做可以得知是否所有人都至少进去过一次。这个真的很难。分析一下,唯一信息就是杯子的状态,上或者下;其实还有一个信息每个人只知道自己是第几次进去;只能根据这些信息来决策。这是第一步,分析我目前能做什么。如果被子一开始的朝向的未知的,此题不可能有解,这个是可行性分析。

    • 所以每个人可以根据杯子状态和第几次进去来决策。
    • 所有人都进去过一次可以如何被展示,这个涉及信息传递,只可能通过杯子状态来看。所有人至少都进去过1次=每个人都至少进去过1次,每个人至少进去过1次这个信息必然的这个进去的人自己发出并且传递的,只能通过翻动杯子来传递。
    • 这样的信号需要重复传递50次。所以必须要有归零(复原)的这个操作。归零这个操作不能任意做,不然会抹去这个信号。并且归零的操作的数目应该对应有一个人进去过了,需要被人记住,又因为人们不能通信,这个信息也无法用杯子状态来传递(杯子状态无法计数),只能让一个人来干这件事。这个人的策略和其他人不一样。
    • 每个人的策略不可以是完全一样的。如果是全同的,必然会相互抹平。
    • 所以如何计数有一个人进去了,有两个不同的人进去了。。具体看一下情景。第一个人进去之后翻一次杯子,表示这个人进去了,这个是第一个人进去过的信息。第二个人进去之后,不可以翻杯子,不然会抵消;归零这个操作要让那个特殊的人来做;直到这个人进去后,这个人才能再翻杯子。在这个人之后进去的人,如果没翻过杯子,并且在看见杯子是向下的时候,可以翻杯子,否则不翻。在负责归零的这个人翻第49次杯子的时候,他可以知道所有人都至少进去过一次了。
  • 序列求和,有点类似随机数加密,或者傅里叶级数分解,通过不同并且不可能混淆并且已知的权重来在一个数字中同时编码多个信息。

  • 如果权重数目固定,据此可以完全得到所编码的多个信息。

  • 这里的题目很多是基于计算机而不是人脑的,处理信息的逻辑是计算机逻辑而不是人脑逻辑,内存足够大,严格遵守规则。然后重点是普适性,和效率,体现在算法复杂性O(n)上。大批量大规模处理信息反而不在话下。

  • 扔玻璃球,又是一个很奇妙的思维。要求这个策略可以minimize the number of drops under worst cases。最坏情况下的次数也最少。每个策略肯定会根据每一步操作执行而给出不同的结果,这些结果会导致扔的drops的数目不一样,但要求worst case下的可能结果也最小,其实是要求我们把每一次操作都当成最坏的操作来判断,在这种条件下要做到drop数目尽可能小。

    • 然后想不出来了,具体实践一下。注意得到的每个结论都要非常的可靠,至少我要给出适用条件。
    • 在x楼扔球。如果球碎了,只能从1楼开始一级一级扔上去。对应于worst case的意思,所以这道题要两个球。所以这里最坏情况的扔球数目=x. 这道题是这个意思,一定要读清楚题意。
    • 如果球没碎。可以在更高的楼层扔,可以一层一层扔上去,也可以跳到y层扔。一层一层扔上去,稳妥但是慢,如果这样的话答案应该是100下。所以应该跳比较多,如果碎了再从头开始扔,这样最坏的情况扔球次数=y-x-1。
    • 后续推导也是这样。没碎的话跳到z层,这样的。
    • 如果让最坏情况的扔球次数不变,y=x+x-1即可。
  • 在两个孩子中,至少有一个是男孩。求两个孩子都是男孩的条件概率。

    • 有两个孩子,已知其中给定一个孩子是男孩,求两个孩子都是男孩的概率=求另一个孩子也是男孩的条件概率。
    • 这两个是不一样的。前者不能脱离一共有两个孩子的语境,条件是给两个孩子一起下的,而后者的条件只涉及一个孩子。而这个孩子的性别和另外一个孩子的性别是独立的,所以后者是1/2。
    • 关键的条件是,要能确定哪一个孩子是男孩。要有一个身份标识。前者是不能确定的,样本空间才会是bb bg gb gg,然后由于至少一个是男孩,排除gg。后者则是,虽然也可以bb bg gb bb,但条件是第一个孩子是男孩,只留bb bg两个可能。即,后者条件给出的信息和前者是不一样的。
    • 同时,也可以用后者的思想,解决这个问题:一直生孩子,直到男孩为准,问男女比。由于每次生的孩子男女的概率都一致,因此都是50%,和什么时候停止生没有关系。
    • 也可以看成一个二叉树,任意下级分支停止,生男生女的概率都是1/2。
  • 样本空间要找好,或者说,如何找到对于基本事件的正确的 准确的描述。