Я исходил из того, что указанные четыре множества не пересекаются и образуют разбиение множества всех карт, а условия "нижние (от 1 до 50), верхние (от 51 до 100), чётные или нечётные" попарно комбинируются для того, чтобы получить эти четыре множества. Значит неправильно понял.
Когда множества в два раза больше, то решение, конечно, существует. Для этого нужно немного модифицировать моё решение исходной задачи. А именно, разложение
заменяем на
где
,
,
,
,
.
выбирается по тому же принципу, что и
в предыдущем решении (всегда
, что обеспечивает
), после чего в распоряжении второго фокусника остаётся
вариантов выбора
,
и
, при этом зрители ограничивают один из битов
или
определённым значением, но из пары
всё равно можно извлечь один лишний бит, даже несмотря на то, что первый фокусник не знает какой бит был ограничен, а именно рассматривая условный бит
. Тогда, выбрав вначале пару
так, чтобы она отличалась от любой из пар
,
,
, но в то же время из неупорядоченного набора четырёх таких пар можно было однозначно восстановить
, второй фокусник определяет "свободный" бит из пары
так, чтобы
, подсчитывает
по формуле
и отдаёт соответствующую карту зрителям.
Первый фокусник считает все числа
и
, находит индекс
карты второго фокусника, который после перемешивания не обязательно равен
, ну а дальше - по-старому: число
даст нужный порядок.
О том, как выбрать пару
или, переходя к представлению
, число
от
до
, отличное от
,
,
, чтобы из неупорядоченного набора
можно было однозначно восстановить
, пока умолчу, ибо, честно говоря, не уверен, что такое громоздкое решение кого-либо заинтересует.