Page 193 - Bkhargava_-_Grokaem_algoritmy
P. 193

192    Глава 8. Жадные алгоритмы


        Учтите, что правильных решений может быть несколько. Вы перебираете
        все станции и выбираете ту, которая обслуживает больше всего штатов, не
        входящих в текущее покрытие.  Будем называть ее best_station:

        best_station  = None
        states_covered  =  set()
        for  station,  states_for_station  in  stations.items():


        Множество states_covered содержит все штаты,  обслуживаемые этой стан­
        цией, которь1е еще не входят в текущее покрытие. Цикл for перебирает все
        станции и находит среди них наилучшую. Рассмотрим тело цикла for:

        covered  = states_needed  & states_for_station    Новый синтаксис! Эта операция
        if  len(covered)  >  len(states_covered)   .... ····   называется "пересечением
          best_station  = station                         множеств"
          states_covered  = covered

        В коде встречается необычная строка:


        covered  =  states_needed  & states_for_station

        Что здесь происходит?

        Множества

        Допустим, имеется множество с названиями фруктов.









                                         ФРУКТЫ


        Также имеется множество с названиями овощей.





                                          nоми.а.оР

                                         06014М

                                                         www.trk.kg
   188   189   190   191   192   193   194   195   196   197   198