Царят има 1000 бутилки вино, царицата иска да убие царя и изпраща слуга да отрови виното. За щастие кралят пази 5 седмици, след като е отровил само една бутилка и пазачът не знае коя бутилка е отровена. Освен това отнема един месец, за да има ефект, а след 5 седмици идва юбилейно парти! Царят решава, че все още ще може да получи някои от затворниците в огромната си тъмница.
Тъй като имате нужда от 10 цифри, за да представляват 1000 номера в двоични , ще ви трябва 10 затворници . сега логиката е следната: всяка бутилка има уникален номер от 1 до 1000 и уникално двоично представяне от 00000001 до 1111101000 . сега имате 10 затворници . всяка бутилка ще бъде опитана от затворниците в зависимост от двоичното представяне на бутилкатa . където има 1 , бутилката ще бъде опитана от този затворник.
divide(1000, const_100)