John Salerno wrote: > John Salerno wrote: > > [EMAIL PROTECTED] wrote: > > > >> No. First of all, combining them with the & operator would be > >> the asnswer to having all four lamps lit in the same position. > >> But you want exactly 3 (in any combination). The correct way > >> to combine the switches (using my answer of a[7] b[2] c[5] d[3]) > >> is to use the boolean expression I gave you initially: > > > > Ah, that makes sense. I think I have a handle on it now. Of course, you > > did the grunt work of making the hex list, which might not have been so > > fun, but now I can work on using it to get the solution. Once I do, I'd > > love to compare my answer to yours, because something tells me yours > > will be much more elegant. :) > > p.s. is there an xor operator in python?
Yep. The XOR operator is ^. That's why you have to use ** for exponentiation. In addition to &=AND, there is also |=OR. I actually gave two boolean expressions. First, using the standard notation, where concatenation implies AND, + is OR and x is XOR (actually, the standard notation for XOR is a + inside a circle, but my keyboard doesn't have one of those). Y = CD(A x B) + AB(C x D) Second, using the Python operators Y = ((C & D) & (A ^ B)) | ((A & B) & (C ^ D)) -- http://mail.python.org/mailman/listinfo/python-list