A,D发送了1,B发送了0,C没有发送数据.
下面给出两种解法.
解法一:
这个问题其实就是个解方程的问题.
k1(-1,-1,-1,1,1,-1,1,-1)+k2(-1,-1,1,-1,1,1,1,-1)+k3(-1,1,-1,1,1,1,-1,-1)+k4(-1,1,-1,-1,-1,1,-1)=(-1,1,-3,1,-1,-3,1,1)
这里k1,k2,k3,k4可以取值-1,0,1.
可以得到8个方程,然后解出方程组,就知道了.事实上,我们只需要几个方程就可以解出来了.
第一个数字-k1-k2-k3-k4=-1
第二个数字-k1-k2+k3+k4=1
两式相加,得-2k1-2k2=0--->k1=-k2,k3+k4=1.
第三个数字-k1+k2-k3-k4=-3--->-(-k2)+k2-(k3+k4)=-3--->2k2-1=-3--->k2=-1
所以k1=1
第4个数字,k1-k2+k3-k4=1--->1-(-1)+(1-k4)-k4=1,k4=1,因此k3=0.
所以不需要解出所有8个方程,我们已经知道了k1=k4=1,k2=-1,k3=0.
这就说明A,D发送了源码,B发送了反码,C没有发送任何代码.
解法二:
这个问题也可以不通过上面的解方程的办法,而直接从这5个码片看出:因为每个码片或者是1,或者是-1,而我们看到最后收到的码片的第三,第六个数字为3,这说明信号一定是通过叠加而成,就是说不止一个站发送了信息.如果是两个或者四个站参与了发送信息,不管是源码或者反码,得到的数字一定是偶数.因此可以推出,有三个站参与了发送.我们先来看4个站码片的第3个和第6个数字,A,B,C,D分别为-1,1,-1,-1和-1,1,1,-1.除了C的数字从-1变为1外,其他三个数字都没有变,而收到的码片相应的数字都是-3,这就说明C站没有参与发送信息,否则收到的码片第3个第6个数字会不同.因此A,B,D参与了发送信息.再看第三个数字,A,B,D的第三个数字分别为-1,1,-1,而收到的叠加的码片的第3个数字为-3,因此只有A,D发送源代码,B发送反代码才能获得.
结论:A,D发送了1,B发送了0,C没有发送数据.(源自爱问知识人)