转跳到内容

【题解】数学算法挑战 斯芬克斯之谜


只显示该作者

只有该作者的内容显示中。 返回到主题

推荐贴

我觉得其实就是找冗余信息的问题吧。如果考虑k1 k2 k3三个向量的话其实是不够的,还要考虑斯芬克斯的答案。所以真正考虑的向量是(k1,k2,k3,b)。我们可以要求五组k1 k2 k3组成的矩阵

k11 k12 k13

k21 k22 k23

k31 k32 k33

k41 k42 k43

k51 k52 k53 

中任选三个都是满秩的。

然后回答错误了一次的情况下,其实四个正确答案对应的(k1,k2,k3,b)是完全可以被互相表示的,也就是共线的。只需要找到四个共线性向量组合就好了。而之所以需要五个方程组是因为有一次错误,然后有三个变量,需要一个冗余来确定。我想到个进阶版的问题。

 

例如斯芬克斯有n个不知道的神秘数字(a1,a2,...,an),但是你可以提供n个数字(k1,k2,...kn)了,他会告诉你k1*a1+...+kn*an的值。但是它在你提问的时候会给你最多m个错误答案。那这种情况下你最少要提问几次,才能求出正确的神秘数字。

下面是我的猜测

剧透

我个人的猜测是需要m+1+max(m,n)次。而求解的思路也是,找到1+max(m,n)个向量(每个向量的长度是n+1而不是n),使得这些向量组成矩阵的秩是n。这是矩阵的秩的介绍:https://baike.baidu.com/item/矩阵的秩/6285316

 

而之所以有个max(m,n),其实是考虑到n>=m和n<m的两种情况。

1.当n>=m的时候,只需要找到n+1个向量就可以了。

这里面存在且仅存在一组n+1个向量,他们组成矩阵的秩是n,这也就是斯芬克斯给的正确答案。

而自然的,剩下的那些答案是错误的。

 

 

2. 而当n<m的时候,我们则需要找到2m+1个向量。

因为我们考虑个极端的情况,如果我们只要了n+m+1个向量,我们找到的n+1个向量组成矩阵的秩是n。但是这n+1个向量完全可能都是斯芬克斯的谎言。

所以这种情况下,我觉得只能从2m+1个向量里找那m+1个正确答案。方法同样是选出m+1个向量,然后当他们组成矩阵的秩是n时,这些答案都是正确的。

 

 

,由fakeclouds修改

fakeclouds得到了穿越资格,兴奋过度从而砸坏了键盘.-2节操

链接到点评
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款