Здесь много примеров математики, но вы хотели пример из реального мира , поэтому немного подумав, возможно, это лучшее, что я могу предложить:
Вы найдете человека, который заразился данной контагиозной инфекцией, которая не является смертельной и быстро излечивается (тип A), за исключением одного из пяти человек (мы назовем их типом B), который постоянно инфицирован ею и не показывает симптомы и просто действует как распространитель.
Это создает довольно раздражающие волны хаоса, когда когда-либо тип B заражает множество типов A.
Ваша задача - выследить всех вирусов типа B и провести иммунизацию, чтобы остановить основу болезни. К сожалению, вы не можете назначить общенациональное лекарство для всех, потому что люди, относящиеся к типу А, также имеют смертельную аллергию на лекарство, которое работает для типа В.
То, как вы это сделаете, было бы социальным открытием, если бы инфицированный человек (тип A) выбрал все свои контакты за последнюю неделю, пометив каждый контакт в куче. Когда вы проверяете, что человек заражен, добавьте его в очередь для отслеживания. Если человек относится к типу B, добавьте его в «продолжение» во главе (потому что вы хотите остановить это быстро).
После обработки данного человека выберите человека в начале очереди и при необходимости примените иммунизацию. Получите все их контакты, которые ранее не посещались, а затем проверьте, не заражены ли они.
Повторяйте, пока очередь зараженных людей не станет равной 0, а затем дождитесь новой вспышки.
(Хорошо, это немного итеративно, но это итеративный способ решения рекурсивной проблемы, в данном случае обход в ширину базы населения, пытающийся обнаружить вероятные пути к проблемам, и, кроме того, итерационные решения часто бывают быстрее и эффективнее , и я принудительно удаляю рекурсию повсюду, так что она становится инстинктивной .... черт возьми!)