Guest User

Untitled

a guest
Feb 29th, 2012
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.22 KB | None | 0 0
  1. def workbester(subjects,maxWork):
  2.     """Within a given list of subjects, chooses the one with the
  3.       least work whose work value is less than maxWork."""
  4.     least_work = 1000
  5.     best_subject = ""
  6.     for subject in subjects:
  7.         if subjects[subject][WORK] < least_work and subjects[subject][WORK] <= maxWork:
  8.             least_work = subjects[subject][WORK]
  9.             best_subject = subject
  10.     if best_subject == "":
  11.         best_subject = None
  12.     return best_subject
  13.  
  14. def greedyAdvisorWork(subjects, maxWork, greedy_dictionary):
  15.     """Returns a dictionary of subjects chosen from "subjects" in order of least work."""
  16.     remwork = maxWork
  17.     if workbester(subjects, maxWork) == None:#1 if there are no possible subjects left, return what we have so far.
  18.         return greedy_dictionary
  19.     else:#if a subject is found, add it to the dictionary, then run again on a dictionary with that subject removed.
  20.         greedy_dictionary[workbester(subjects, maxWork)] = subjects[workbester(subjects,maxWork)]
  21.         subjectadded = workbester(subjects, maxWork)
  22.         remwork -= subjects[workbester(subjects,maxWork)][WORK]
  23.         return greedyAdvisorWork(deldict(subjects,subjectadded),remwork,greedy_dictionary)
Advertisement
Add Comment
Please, Sign In to add comment