Първоначално публикувано от
kamenf Броячите всъщност са два. В зависимост от това кой отговаря пръв - този с четното или този с нечетното число (не забравяме, че те много добре си знаят кой с какво е) - се "инициализират" съответно с 0-1000 или 1-1001. След отговор единият се увеличава, а другият се намалява с едно. При този подход броячите отразяват границите на намалящ затворен интервал които са с четност еднаква с четността на числото на съответния питан (вижда се, че и винаги интервала съдържа нечетен брой числа). Която и от тези граници да е равна на числото на питания той вече знае числото на другия, защото то е съседно, вътре в интервала, с изключение когато в интервала останат само три числа - този със средното няма да знае кое от другите две е вярното. И понеже нашите математици са гениални, за да избегнат този случай ако интервала се стесни до 5 числа (защо до 5, а не до 3? - защото не трябва да лъжат) и някой от броячите не е числото на питания (в този случай е без значение щото и двамата ще знаят след една стъпка) трябва да минат на варианта с безкрайната редица - пита се само за левия брояч и само той се увеличава с едно.
Едит:
Всъщност, сега като се замислих, какъвто и подход да се измисли, в каквато и последователност да се питат, в момента в който останат три числа (а те винаги ще останат три числа независимо дали пълзим от двата края към средата или от единия към дугия край (разликата е в броя питания), независимо дали имаме четен или нечетен брой числа), единият няма да знае кое точно е числото на другия, защото другият просто ще трябва да признае, че знае числото на първия, без това да носи някаква информация. Така че стигне ли се до там - единия е прецакан.
Така че си мисля, че окажат ли се числата в оставащия последен интервал от три числа, единият няма да знае кое е числото на другия. И това не е парадокс, а 2/999 възможност за липса на решение при определен алгоритъм.