recoder: (Default)
recoder ([personal profile] recoder) wrote2004-12-03 02:37 pm

Задачка про компостеры

Ежедневные поездки на троллейбусе навели меня на такую простенькую с виду задачку:

Есть компостер, в котором установлено M x N зубчиков-перфораторов (В случае моего троллейбуса - 3x5). Спрашивается - каков минимальный набор прокомпостированных билетов, покрывающий всё множество различимых комбинаций? То есть - сколько есть комбинаций, различимых сдвигами и поворотами на 90°. Для простоты предположим, что прямоугольный билет всегда прямо укладывается в компостер, так что вариантами с вращением на произвольные углы мы пренебрегаем.

У нас с [livejournal.com profile] tigerone не хватило знаний комбинаторики чтобы решить такую задачу (в смысле - решить аналитически, а не полным перебором на компе).

[identity profile] hazan.livejournal.com 2004-12-03 06:39 am (UTC)(link)
Я так думаю, что 2 в степени(NxM) - это без учета поворотов на 90 градусов и не отбрасывая зеркальные изображения.

[identity profile] hazan.livejournal.com 2004-12-03 06:44 am (UTC)(link)
Это полное количество комбинаций этой матрицы. Половину можно отбросить сразу - как симметричные по горизонтальной оси.
Если билет не вставляется до упора в компостер, то можно будет отбросить одинаковые картинки, сдвинутые на несколько гвоздей по вертикали или горизонтали. Еще, наверное, можно откинуть симметричные по вертикальной оси - еще половина.

Чем еще можно пренебречь?

[identity profile] tigerone.livejournal.com 2004-12-03 07:03 am (UTC)(link)
"Если билет не вставляется до упора в компостер, то можно будет отбросить одинаковые картинки, сдвинутые на несколько гвоздей по вертикали или горизонтали. "
Вот это самый интересный момент. Если закодировать бинарным кодом, то следующие комбинации будут признаны разными, хотя на самом деле - в нашем специфичном приложении их можно принять за одинаковые.
000 111
000 111
111 111
111 000
111 000

Вот исключить такие повторения - имхо не совсем просто.

[identity profile] tigerone.livejournal.com 2004-12-03 07:05 am (UTC)(link)
Чтобы не очень было похоже на перевертыш - вот ещё один пример (единицы-дырочки)
011 000
011 110
000 110
000 000
000 000

[identity profile] hazan.livejournal.com 2004-12-03 07:06 am (UTC)(link)
не понял, это одна комбинация или несколько?

[identity profile] tigerone.livejournal.com 2004-12-03 07:15 am (UTC)(link)
В обоих постах - два билетика, рядом, стоя.

[identity profile] hazan.livejournal.com 2004-12-03 07:37 am (UTC)(link)
Так про первый билетик я уже сказал - симметричные по горизонтали и вертикали отбрасываем.

Вот для второго как раз надо считать количество комбинаций со сдвигом.