A) Сначала делим по 6 монет, та чаша, в сторону которой отклонится стрелка будет иметь фальшивую монету (разобраться с тем, в какую сторону в зависимости от того тяжелее монета или легче, думаю, не составит труда)
B) Далее оставим чашу с 6 монетами с 1 фальшивой.
По 3 в каждую чашу, аналогично определяем присутствие фальшивой в 1 из них.
C) Остается 3 монеты. Взвешиваем 2 любые:
1) Равны => 3 монета - фальшивая.
2) Не равны => по отклонению определяем чашу с фальшивой монетой.
Создаём 6 комбинаций (не групп) монет, по 4 в каждой, и взвешиваем их попарно.
A - B, C - D, E - F
Если считать, что весы имеют три состояния < > =, тогда каждой монете мы можем присвоить
уникальный трёхзначный номер (ID) в троичной системе счисления, вместо цифр будут символы <>=
Что будет значить номер? Предположим, что фальшивая монета тяжелее
(если допустим что легче, то просто кладём монету на другую сторону, нам это вообще не важно, у нас в любом случае получается уникальный ID).
Например, монета имеет ID ==<, это значит что в первом и втором взвешивании, она не участвует, а в третьем мы кладем её в слева (на сторону E).
>>< для монеты означает, что в первом и втором взвешивании мы кладём монету справа (в кучки B и D), а в третьем - слева.
Подбираем ID для 12-ти монет так, чтобы суммарно во всех ID в каждом взвешивании было четыре ">", четыре <" и четыре "="
(и конечно, не забываем про уникальность номера), таким образом мы обеспечиваем кол-во монет во всех комбинациях равным 4-м.
Также избегаем зеркальности, потому что мы не знаем, что легче, что тяжелее.
Если у нас есть <=<, ID >=> исключается и наоборот.
Затем проводим три взвешивания и получаем трёхзначный уникальный ID, который и указывает на монету.
Если ID не обнаруживаем, значит фальшивая монета всё-таки легче, инвертируем ID (там где > ставим < и наоборот) и снова ищем по списку.