как найти самые короткие продукты случайно удаленного полного продукта?

#python #math

#python #математика

Вопрос:

как найти самые короткие продукты случайно удаленного полного продукта?

(2, 2, 2, 2)
(2, 2, 2, 1)
(2, 2, 1, 2)
(2, 2, 1, 1)
(2, 1, 2, 2)
(2, 1, 2, 1)
(2, 1, 1, 2)
(2, 1, 1, 1)
(1, 2, 2, 2)
(1, 2, 2, 1)
(1, 2, 1, 2)
(1, 2, 1, 1)
(1, 1, 2, 2)
(1, 1, 2, 1)
(1, 1, 1, 2)
(1, 1, 1, 1)

выше приведен продукт [(1,2), (1,2), (1,2), (1,2)], длина произведения = 1, это также называется полным произведением
всего элементов: 16

теперь случайным образом некоторые из них удаляются.
(2, 2, 2, 2)
(2, 2, 2, 1) — удалено
(2, 2, 1, 2)
(2, 2, 1, 1)
(2, 1, 2, 2) — удалено
(2, 1, 2, 1)
(2, 1, 1, 2)
(2, 1, 1, 1)
(1, 2, 2, 2)
(1, 2, 2, 1) — удалено
(1, 2, 1, 2)
(1, 2, 1, 1)
(1, 1, 2, 2)
(1, 1, 2, 1) — удалено
(1, 1, 1, 2)
(1, 1, 1, 1)

теперь у нас есть:
(2, 2, 2, 2)
(2, 2, 1, 2)
(2, 2, 1, 1)
(2, 1, 2, 1)
(2, 1, 1, 2)
(2, 1, 1, 1)
(1, 2, 2, 2)
(1, 2, 1, 2)
(1, 2, 1, 1)
(1, 1, 2, 2)
(1, 1, 1, 2)
(1, 1, 1, 1)

способ 1
произведение
[(1,), (1,2), (1,), (1,2)] [(1,2), (2,), (2,), (2,)] [(2,), (1,2), (1,), (1,2)]
добавить
(1, 1, 2, 2)
(2, 1, 2, 1)
длина произведения = 5, поэтому мы сокращаем 12 до 5

способ 2
у нас есть другой способ сократить его: произведение
[(1,2), (1,2), (1,), (1,)] [(1,2), (2,), (1,2), (2,)] [(1,), (1,), (1,2), (2,)]
добавить
(2, 1, 2, 1)
(2, 1, 1, 2)
длина произведения = 5, поэтому мы сокращаем 12 до 5

эти два способа имеют разные произведения, но одинаковой длины.

Таким образом, должен существовать наилучший способ сокращения, который мог бы сократить 12 до минимального.

В общем, у нас есть полный продукт, и случайно некоторые из его элементов удалены, мы хотим найти наименьший продукт по длине или лучший способ сократить его.

Любые мысли или информация помогут.

Комментарии:

1. Интересный вопрос, но тема обсуждения, подобная этой, не по теме для SO. Попробуйте cs.stackexchange.com вместо этого. Также может быть форум algorithms stackexchange, я точно не помню.

2. Речь идет о математике и информатике, как это может быть не по теме?

3. Stackoverflow предназначен для конкретных вопросов программирования, другие форумы stackexchange (cs и т.д.) Предназначены для проблем, требующих обсуждения. Где-то на SO есть руководство относительно того, что считается подходящим вопросом для этого форума; извините, я не знаю, где это, не глядя.