In article <kbsfh5$lp4$1...@dont-email.me>, "Alex" <foo@email.invalid> wrote:
> Yes. Although sometimes I fear that we are becoming a society of > end-users who rely too much on the capability of our tools and fail to > take the time to understand the fundamentals upon which those tools are > based or cultivate the problem-solving skills that Project Euler > appears to be trying to hone. Over the years, my understanding of the fundamentals of computing has included C, assembler, microcoding, TTL logic design, transistor circuits, and a bit of semiconductor physics. I could certainly build you a full-adder or a flip-flop from a pile of NAND gates. I *think* I could probably cobble together a NAND gate from a pile of transistors (but I know I couldn't build a transistor from a pile of sand). I'm very happy living at the top of the stack these days :-) I guess the question is, what *is* a "fundamental"? There's lots of stuff in Project Euler that is about picking the right algorithm. There's even a pair of problems which are exactly the same problem, except that one has a (much) larger data set. You can solve the first with brute-force, but not the second. Algorithms will always be fundamental. But, is knowing how to do arbitrary precision arithmetic a fundamental? I don't think so. Back with I started working with microprocessors, knowing how to do multi-precision addition was essential because you only had an 8-bit adder. But those days are long gone. There's a problem I just worked where you need to find the last 10 digits of some million-digit prime. Python's long ints don't help you there. What does help you is figuring out a way to solve the problem that's not brute-force. I think that's what Euler is all about. -- http://mail.python.org/mailman/listinfo/python-list