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

Hello, I am doing the mcnuggets 2008 fall problem set, and am struggling as to how I would write a program to solve the equation can anyone help me?

OpenStudy (anonymous):

equation?

OpenStudy (anonymous):

6a + 9b + 20c = n. Problem 1. Show that it is possible to buy exactly 50, 51, 52, 53, 54, and 55 McNuggets, by finding solutions to the Diophantine equation. You can solve this in your head, using paper and pencil, or writing a program. However you chose to solve this problem, list the combinations of 6, 9 and 20 packs of McNuggets you need to buy in order to get each of the exact amounts.

OpenStudy (anonymous):

wat's n?

OpenStudy (anonymous):

n is the number of nuggets

OpenStudy (anonymous):

a b c ?

OpenStudy (anonymous):

the different combinations of packets of nuggets you can buy (packet a has 6, b has 9 c has 20)

OpenStudy (anonymous):

so a b c are no of packets bought of each type?

OpenStudy (anonymous):

yes

OpenStudy (anonymous):

u can find the maximum number of packets bought for each type? say for 51 the max number of packets is 51/6

OpenStudy (anonymous):

brute force method use three for loops to the combination now that u kno the limits of every type

OpenStudy (anonymous):

ok that makes sense, but how would I create a program that lists every single combination

OpenStudy (anonymous):

and what was your reasoning behind wanting to figure out the maximum number of packets? it wouldnt occur to me... i was just trying to program every combination into the code

OpenStudy (anonymous):

@kd1510 the reasoning behind wanting to know the maximum number of each size is so you know what numbers each of your for loops should traverse. totals = (50, 51, 52, 53, 54, 55) for total in totals: # find the max a where b and c are zero maxA = total/6 # find the max b where a and c are zero maxB = total/9 # find the max c where a and b are zero maxC = total/20 # preset a variable to indicate if we were able to solve solutionPossible = False # Loop through all possible combinations for i in range(0, maxA): for j in range(0, maxB): for k in range(0, maxC): if (i*6 + j*9 + k*20 == total): print str(total) + " solved: a=" + str(i) +" b=" + str(j) + " c=" + str(k) solutionPossible = True break if (solutionPossible == False): print str(total) + " couldn't be solved" ########################################## So what you want to do (for this brute force method that is), is: Find the maximum number of each of the packets there could possibly be (because you don't want or need to loop more than that). Then, loop through all the possibilities. You want to check from zero (because there might have been zero of that packet) all the way up to the max, for every combination.

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!