Ask your own question, for FREE!
MIT 6.00 Intro Computer Science (OCW) 17 Online
OpenStudy (anonymous):

The solution zip file for problem set nine appears to be down. This particular problem set is relatively straightforward, but I still like to check my code against that of the pros. Does anyone have a copy of ps9 solutions from the course, or have solutions that they find to be exceedingly elegant?

OpenStudy (anonymous):

OpenStudy (anonymous):

i wouldn't expect the solutions to be written by 'the pros' they blunder here and there 2011 class right? did you run the test module?

OpenStudy (anonymous):

I've run the modules, but I just want to compare my code with others' to assess efficiency issues. This is for the course with Guttag. The ps9_writeup appears to be for a different course or at least a different problem set that I have yet to get to.

OpenStudy (anonymous):

which year, 2011 or 2008?

OpenStudy (anonymous):

2011

OpenStudy (anonymous):

here is greedy function i wrote - a bit different: http://dpaste.com/810054/

OpenStudy (anonymous):

another greedy: http://dpaste.com/810055/ and a bruteforce: http://dpaste.com/810056/

OpenStudy (anonymous):

Nice looking function... one question: you take comparator as an argument for a greedy function, but when running the code, what do you pass into it? I'm assuming you're using the comparators that take the arguments subInfo1 and subInfo2, but since sort needs to iterate over all of the subInfo to do its magic, what do you pass into the argument for greedy function? When I just try to pass in the name of, say, cmpWork, it asks me for arguments.

OpenStudy (anonymous):

so that first function, greedy_sort(), doesn't really use those comparator functions, it just uses them to decide how to sort the list then the last bit picks off the first items in the list till it runs out of work

OpenStudy (anonymous):

I get that, but the way they have set up the greedy_function is that it takes the arguments (subjects, maxWork, comparator), so you have to pass in a comparator function of some sort if you adhere to their original code. But every comparator function requires the arguments (subInfo1, subInfo2); so what should one pass into those when calling the greedy_function?

OpenStudy (anonymous):

ahh - one of the things they want you to learn is that a function is an object just like a str or an int or a dictionary or a tuple are objects and that you can pass a function as an argument to another function. when you do that you just pass the function object without arguments.

OpenStudy (anonymous):

when i try to pass it without arguments I get this error: TypeError: cmpValue() takes exactly 2 arguments (0 given)

OpenStudy (anonymous):

this is what I'm trying to call print greedyAdvisor(loadSubjects(SUBJECT_FILENAME), 30, cmpValue())

OpenStudy (anonymous):

http://dpaste.com/810059/ pass it without the parens

OpenStudy (anonymous):

still get TypeError: cmpValue() takes exactly 2 arguments (1 given)

OpenStudy (anonymous):

http://dpaste.com/810060/

OpenStudy (anonymous):

did you see my examples?

OpenStudy (anonymous):

yeah, there must be something else wrong with the way I'm setting up the code... I'll have to go back and debug the rest of the function. thanks!

OpenStudy (anonymous):

http://dpaste.com/810061/ when you get it working, here is a function that tests greedy using the same concepts - functions as objects - note it uses a small dictionary with a different name than the one used in the 2011 pset

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!