Ужель (ta_samaja) wrote,
Ужель
ta_samaja

Алгоритм «Мужской маджонг»

Явная цель: разобрать постиранные носки по парам.
Тайная цель № 1: показать, что невыполнимая на первый взгляд задача имеет логичное решение.
Тайная цель № 2: сделать процесс увлекательным для носковладельца (сына, зятя, мужа и пр.), освободив этим свои нежные женские ручки.

Имеется:
— подвесная сушилка с X прищепками (что немаловажно, вращающаяся и пока пустая):
— массив N носков, вынутых из стиральной машины, 1 ≤ (N / 2) ≤ Х:
// Точное значение N неизвестно, обычно большое; N может быть и нечётным. Вообще говоря, следовало бы задать условие X ≥ N (допуская, что все носки могут быть непарные), но реально X — константа (например, 20), а пар носков в ходу и потерь всё же меньше.

1. (Начало алгоритма)
2. Взять 1 носок из N.
3. Прицепить на свободную прищепку.
4. Если массив пуст (N = 0), перейти к шагу 10.
5. Взять следующий носок из N.
6. Искать такой же среди непарных носков на сушилке.
7. Если совпадение не найдено, перейти к шагу 3.
8. Прицепить на прищепку с найденным совпадением (создать пару).
9. Перейти к шагу 4.
10. (Конец алгоритма)

Блок-схема

Рекомендации:
— для ускорения и увеселения: начинать лучше с самых заметных (цветных, полосатых и пр.), т. к. их проще спаривать, а уменьшившаяся куча (в основном чёрных, и как назло все разные) подогреет энтузиазм очевидной достижимостью результата;
— оставшиеся одинокими сухие носки складывать в отдельный пакет или коробку, когда наполнится — провести инвентаризацию по тому же алгоритму, только вместо сушилки класть носки рядком; оставшихся одиночек (в гораздо меньшем количестве) вернуть в пакет до следующей инвентаризации.

АПД Сокращённая запись (с циклом):
(Начало алгоритма)
1. Пока массив не станет пустым, выполнять действия 2-4:
2. Взять носок из массива.
3. Искать такой же среди непарных носков на сушилке.
4. Если совпадение найдено, то прицепить на ту же прищепку (создать пару), иначе прицепить на свободную прищепку.
(Конец алгоритма)
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments