Существует алгоритм, которым можно точно узнать в какой бутылке яд.
1. Налить в первый бокал по капле вина из половины бутылок. Нажать на кнопку.
2. Если бокал разбился, в одной из них яд, а в остальных нет. Повторить пункт 1 со следующим бокалом и половиной бутылок, в одной из которых яд.
3. Если бокал цел, то в этой половине бутылок яда нет и отравленная бутылка в другой половине бутылок. Повторить пункт 1 с другой половиной бутылок.

Таким образом на каждом шаге будет потрачен один или ни одного бокала и вдвое уменьшится число бутылок, среди которых есть отравленная. Таким образом методом индукции задача обобщается на любое количество бокалов и бутылок. За десять шагов таким образом можно идентифицировать одну из 2^10 = 1024 бутылок. 1000 < 1024, поэтому десяти бокалов будет достаточно.
มีอัลกอริธึมที่สามารถใช้เพื่อค้นหาได้อย่างชัดเจนว่าขวดใดมีพิษ 1. เทไวน์หนึ่งหยดจากครึ่งขวดลงในแก้วแรก กดปุ่ม. 2. ถ้ากระจกแตก หนึ่งในนั้นจะมีพิษ แต่อีกอันไม่มี ทำซ้ำขั้นตอนที่ 1 กับแก้วถัดไปและครึ่งขวด ซึ่งขวดหนึ่งมียาพิษ 3. หากแก้วไม่บุบสลาย ก็ไม่มีพิษในขวดครึ่งขวดนี้ และขวดพิษก็อยู่ในอีกครึ่งขวด ทำซ้ำขั้นตอนที่ 1 กับอีกครึ่งหนึ่งของขวด ดังนั้นในแต่ละขั้นตอน จะใช้แก้วหนึ่งหรือไม่มีเลย และจำนวนขวดที่มีขวดวางยาพิษจะลดลงครึ่งหนึ่ง ดังนั้น โดยการเหนี่ยวนำ ปัญหาจึงถูกสรุปไปที่แก้วและขวดจำนวนเท่าใดก็ได้ ในสิบขั้นตอน สามารถระบุหนึ่งใน 2^10 = 1,024 ขวดด้วยวิธีนี้ 1,000 < 1,024 สิบแก้วก็เพียงพอแล้ว
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence