sleight 发表于 2011-2-9 22:04
假设所有人头上数字之和为S,第n个人看到的数之和为S(-n),其头上的数为S(n)
则S(n)=S-S(-n)
mod100 取余数式子依然成立,-S(-n)对100的余数各人可知,S对100的余数只能从0到99,编号0到99取值,肯定有一人能得到正确的S值,从而由观察到的S(-n)求得S(n)
sleight的想法很赞,方法可能没表述清楚,我来解释一下~
假设第n个人头上数字为A(n),令 S = A(1)+A(2)+...+A(100) mod 100(除以100的余数);
犯人协商后,让第n个人报B(n)(后面解释),令 S(n) =A(1) +...+A(n-1)+B(n)+A(n+1) ...+A(100) mod 100 ;
假如我们令S(1)=0,...,S(100)=99,那么存在S(i)使得S(i)=S, 于是A(i)=B(i), 即第i个犯人报对头上的数,犯人们得救;
从而犯人们只要约定第i个犯人报i 减去他看到其他人头上的数字之和除以100的余数,即B(i)= i- [A(1) +...+A(n-1)+A(n+1) ...+A(100)],便可以使大家都获救。
p.s.这个问题关键是找一个不变量,即所有人头上数字之和为S~等下出去看娜娜Vs巴萨的比赛,无聊水一下~