 Amazon Business : For businessonly pricing, quantity discounts and FREE Shipping. Register a free business account
Concrete Mathematics: A Foundation for Computer Science (2nd Edition) 2nd Edition
Donald E. Knuth
(Author)
Find all the books, read about the author, and more.
See search results for this author
Are you an author?
Learn about Author Central

Oren Patashnik
(Author)
Find all the books, read about the author, and more.
See search results for this author
Are you an author?
Learn about Author Central

Use the Amazon App to scan ISBNs and compare prices.
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer  no Kindle device required.
Download to your computer

Kindle Cloud Reader

Frequently bought together
What other items do customers buy after viewing this item?

The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)David ThomasHardcoverOnly 1 left in stock  order soon.

Code: The Hidden Language of Computer Hardware and SoftwarePaperbackOnly 1 left in stock  order soon.
Special offers and product promotions
Editorial Reviews
From the Back Cover
This book introduces the mathematics that supports advanced computer programming and the analysis of algorithms. The primary aim of its wellknown authors is to provide a solid and relevant base of mathematical skills  the skills needed to solve complex problems, to evaluate horrendous sums, and to discover subtle patterns in data. It is an indispensable text and reference not only for computer scientists  the authors themselves rely heavily on it!  but for serious users of mathematics in virtually every discipline.
Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems." The subject matter is primarily an expansion of the Mathematical Preliminaries section in Knuth's classic Art of Computer Programming, but the style of presentation is more leisurely, and individual topics are covered more deeply. Several new topics have been added, and the most significant ideas have been traced to their historical roots. The book includes more than 500 exercises, divided into six categories. Complete answers are provided for all exercises, except research problems, making the book particularly valuable for selfstudy.
Major topics include:
 Sums
 Recurrences
 Integer functions
 Elementary number theory
 Binomial coefficients
 Generating functions
 Discrete probability
 Asymptotic methods
This second edition includes important new material about mechanical summation. In response to the widespread use of the first edition as a reference book, the bibliography and index have also been expanded, and additional nontrivial improvements can be found on almost every page. Readers will appreciate the informal style of Concrete Mathematics. Particularly enjoyable are the marginal graffiti contributed by students who have taken courses based on this material. The authors want to convey not only the importance of the techniques presented, but some of the fun in learning and using them.
About the Author
Donald E. Knuth is known throughout the world for his pioneering work on algorithms and programming techniques, for his invention of the Tex and Metafont systems for computer typesetting, and for his prolific and influential writing. Professor Emeritus of The Art of Computer Programming at Stanford University, he currently devotes full time to the completion of these fascicles and the seven volumes to which they belong.
Excerpt. © Reprinted by permission. All rights reserved.
This book is based on a course of the same name that has been taught annually at Stanford University since 1970. About fifty students have taken it each year juniors and seniors, but mostly graduate students  and alumni of these classes have begun to spawn similar courses elsewhere. Thus the time seems ripe to present the material to a wider audience (including sophomores).
It was dark and stormy decade when Concrete Mathematics was born. Longheld values were constantly being questioned during those turbulent years; college campuses were hotbeds of controversy. The college curriculum itself was challenged, and mathematics did not escape scrutiny. John Hammersley had just written a thoughtprovoking article "On the enfeeblement of mathematical skills by 'Modern Mathematics' and by similar soft intellectual trash in schools and universities" 176 ; other worried mathematicians 332 even asked, "Can mathematics be saved?" One of the present authors had embarked on a series of books called The Art of Computer Programming, and in writing the first volume he (DEK) had found that there were mathematical tools missing from his repertoire; the mathematics he needed for a thorough, wellgrounded understanding of computer programs was quite different from what he'd learned as a mathematics major in college. So he introduced a new course, teaching what he wished somebody had taught him.
The course title "Concrete Mathematics" was originally intended as an antidote to "Abstract Mathematics," since concrete classical results were rapidly being swept out of the modern mathematical curriculum by a new wave of abstract ideas popularly called the "New Math." Abstract mathematics is a wonderful subject, and there's nothing wrong with it: It's beautiful, general, and useful. But its adherents had become deluded that the rest of mathematics was inferior and no longer worthy of attention. The goal of generalization had become so fashionable that a generation of mathematicians had become unable to relish beauty in the particular, to enjoy the challenge of solving quantitative problems, or to appreciate the value of technique. Abstract mathematics was becoming inbred and losing touch with reality; mathematical education needed a concrete counterweight in order to restore a healthy balance.
When DEK taught Concrete Mathematics at Stanford for the first time he explained the somewhat strange title by saying that it was his attempt to teach a math course that was hard instead of soft. He announced that, contrary to the expectations of some of his colleagues, he was not going to teach the Theory of Aggregates, not Stone's Embedding Theorem, nor even the StoneCech compactification. (Several students from the civil engineering department got up and quietly left the room.)
Although Concrete Mathematics began as a reaction against other trends, the main reasons for its existence were positive instead of negative. And as the course continued its popular place in the curriculum, its subject matter "solidified" and proved to be valuable in a variety of new applications. Meanwhile, independent confirmation for the appropriateness of the name came from another direction, when Z.A. Melzak published two volumes entitled Companion to Concrete Mathematics 267.
The material of concrete mathematics may seem at first to be a disparate bag of tricks, but practice makes it into a disciplined set of tools. Indeed, the techniques have an underlying unity and a strong appeal for many people. When another one of the authors (RLG) first taught the course in 1979, the students had such fun that they decided to hold a class reunion a year later.
But what exactly is Concrete Mathematics? It is a blend of continuous and discrete mathematics. More concretely, it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems. Once you, the reader, have learned the material in this book, all you will need is a cool head, a large sheet of paper, and fairly decent handwriting in order to evaluate horrendouslooking sums, to solve complex recurrence relations, and to discover subtle patterns in data. You will be so fluent in algebraic techniques that you will often find it easier to obtain exact results than to settle for approximate answers that are valid only in a limiting sense.
The major topics treated in this book include sums, recurrences, elementary number theory, binomial coefficients, generating functions, discrete probability, and asymptotic methods. The emphasis is on manipulative techniques rather than on existence theorems or combinatorial reasoning; the goal is for each reader to become as familiar with discrete operation (like the greatest integer function and finite summation) as a student of calculus is familiar with continuous operations (like the absolutevalue function and infinite integration)
Notice that this list of topics is quite different from what is usually taught nowadays in undergraduate course entitled "Discrete Mathematics." Therefore the subject needs a distinctive name, and "Concrete Mathematics" has proved to be as suitable as another
The original textbook for Stanford's course on concrete mathematics was the "Mathematical Preliminaries" section in The Art of Computer Programming 207. But the presentation in those 110 pages is quite terse, so another author (OP) was inspired to draft a lengthy set of supplementary notes. The present book is an outgrowth of those notes; it is an expansion of, and a more leisurely introduction to, the material if Mathematical Preliminaries. Some of the more advanced parts have been omitted; on the other hand, several topics not found there have been included here so that the story will be complete
The authors have enjoyed putting this book together because the subject began to jell and to take on a life of its own before our eyes; this book almost seemed to write itself. Moreover, the somewhat unconventional approaches we have adopted in several places have seemed to fit together so well, after these years of experience, that we can't help feeling that this book is a kind of manifesto about our favorite way to do mathematics. So we think the book has turned out to be a tale of mathematical beauty and surprise, and we hope that our readers will share at least of the pleasure we had while writing it.
Since this book was born in a university setting, we have tried to capture the spirit of a contemporary classroom by adopting an informal style. Some people think that mathematics is a serious business that must always be cold and dry; but we think mathematics is fun, and we aren't ashamed to admit the fact. Why should a strict boundary line be drawn between work and play? Concrete mathematics is full of appealing patterns; the manipulations are not always easy, but the answers can be astonishingly attractive. The joy and sorrows of mathematical work are reflected explicitly in this book because they are part of our lives.
Students always know better than their teachers, so we have asked the first students of this material to contribute their frank opinions, as "graffiti" in the margins. Some of these marginal markings are merely corny, some are profound; some of them warn about ambiguities or obscurities, others are typical comments made by wise guys in the back row; some are positive, some are negative, some are zero. But they all are real indications of feelings that should make the text material easier to assimilate. (the inspiration for such marginal notes comes from a student handbook entitled Approaching Stanford, where the official university line is counterbalanced by the remarks of outgoing students. For example, Stanford says, "There are a few things you cannot miss in this amorphous .. what the h*** does that mean? Typical of the pseudointellectualism around her." Stanford: There is no end to the potential of a group of students living together." Graffito: "Stanford dorms are like zoos without a keeper."
The margins also include direct quotations from famous mathematicians of past generations, giving the actual words in which they announced some of their fundamental discoveries. Somehow it seems appropriate to mix the words of Leibniz, Euler, Gauss, and others with those of the people who will be continuing the work. Mathematics is an ongoing endeavor for people everywhere; many strands are being woven into one rich fabric.
This book contains more than 500 exercises, divided into six categories:
 Warmups are exercises that every reader should try to do when first reading the material.
 Basics are exercises to develop facts that are best learned by trying one's own derivation rather than by reading somebody else's.
 Homework exercises are problems intended to deepen an understanding of material in the current chapter.
 Exam problems typically involve ideas from two or more chapters simultaneously; they are generally intended for use in takehome exams (not for inclass exams under time pressure).
 Bonus problems go beyond what an average student of concrete mathematics is expected to handle while taking a course based on this book; they extend the text in interesting ways. Bonus problems go beyond what an average student of concrete mathematics is expected to handle while taking a course based on this book; they extend the text in interesting ways.
 Research problems may or may not be humanly solvable, but the ones presented here seen to be worth a try (without time pressure).
Answers to all the exercises appear in Appendix A, often with additional information about related results. (Of course the "answers" to research problems are incomplete; but even in these cases, partial results or hints are given that might prove to be helpful.) Readers are encouraged to look at the answers especially the answers to the warmup problems, but only after making a serious attempt to solve the problems without peeking.
We have tried in Appendix C to give proper credit to the sources of each exercise, since a great deal of creativity and/or luck often goes into the design of an instructive problem. Mathematicians have unfortunately developed a tradition of borrowing exercises without an acknowledgment; we believe that the opposite tradition, practiced for example books and magazines about chess (where names, dates, and location of original chess problems are routinely specified) is far superior. However, we have not been able to pin down the sources of many problems that have become part of the folklore. If any reader knows the origin of an exercise for which our citation is missing or inaccurate, we would be glad to learn the details so that we can correct the omission in subsequent editions of this book.
The typeface used for mathematics throughout this book is a new design by Hermann Zapf 227, commissioned by the American Mathematical Society and developed with the help of a committee that included B. Beeton, R.P. Boas. L.K. Durst, D. E. Knuth, P. Murdock, R.S. Palais, P Renz, E. Swanson, S.B. Whidden and W.B. Woolf. The underlying philosophy of Zapf's design is to capture the flavor of mathematics as it might be written by a mathematician with excellent handwriting. A handwritten rather than mechanical style is appropriate because people generally create mathematics with pen, pencil, or chalk. (For example, one of the trademarks of the new design is the symbol for zero, 'O', which is slightly pointed at the top because a handwritten zero rarely closes together smoothly when the curve returns to its starting point.) The letters are upright, not italic, so the subscripts, superscripts, and accents are more easily fitted with ordinary symbols. This new type of family has been named AMS Euler, after the great Swiss mathematician Leonhard Euler (17071783) who discovered so much of mathematics as we know it today. The alphabets include Euler Text, Euler Fraktur, and Euler Script Capitals, as well as Euler Greek and special symbols such as <p> and <N>. We are especially pleased to be able to inaugurate the Euler Family of typefaces in this book, because Leonhard Euler's spirit truly lives on every pare: Concrete mathematics is Eulerian mathematics.
The authors are extremely grateful to Andrei Broder, Ernst Mayr, Andrew Yao, and Frances Yao, who contributed greatly to this book during the years that they taught Concrete Mathematics at Stanford. Furthermore we offer 1024 thanks to the teaching assistants who creatively transcribed what took place in class each year and who helped to design the examination questions; their names are listed in Appendix C. This book, which is essentially a compendium of sixteen years' worth of lecture notes, would have been impossible without their firstrate work.
Many other people have helped to make this book a reality. For examples, we wish to commend the students at Brown, Columbia, CUNY, Princeton, Rice, and Stanford who contributed the choice of graffiti and helped to debug our first drafts. Our contacts at AddisonWesley were especially efficient and helpful; in particular, we wish to thank our publisher (Peter Gordon), production supervisor (Bette Aaronson), designer (Roy Brown), and copy editor (Lyn Dupré). The National Science Foundation and the Office of Naval Research have given invaluable support. Cheryl Graham was tremendously helpful as we prepared the index. An above all, we wish to thank our wives (fan, Jill, and Amy) for their patience, support, encouragement, and ideas.
This second edition features a new Section 5.8, which describes some important ideas that Doron Zeilberger discovered shortly after the first edition went to press. Additional improvements to the first printing can also be found on almost every page.
We have tried to produce a perfect book, but we are imperfect authors. Therefore we solicit help in correcting any mistakes that we've made. A reward of $2.56 will gratefully be paid to the first finder if any error, whether it is mathematical, historical, or typographical.
Murray Hill, New Jersey  RLGand Stanford California DEK May 1988 and October 1993
OP
0201558025P04062001
Product details
Would you like to tell us about a lower price? If you are a seller for this product, would you like to suggest updates through seller support? 
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Customer reviews
There was a problem filtering reviews right now. Please try again later.
If you're going to publish a kindle version of your book. Have enough respect for your readers to make it "readable".
TakeAways (As of Ch 3):
There are many aspects of summations, integer functions, and proofing that: I never saw covered in my CS degree, are unforgettable, and can be immediately applied to most algorithm research. Those alone make this book worth every penny. Further, the problems posed by this book are more than just repeated mechanics, as I have seen in books like those mentioned below. Each problem is carefully chosen, thorough, and exposes multiple aspects of each topic. They really do weed out many faults that I wasn't really exposed to as a small example: the importance of ensuring validity of n1 and n2 hypothesis & base cases during an induction proof.
The Bad:
Students educated through a contemporary CS track at most American uni's, I believe, (e.g. Rosen Discrete Math, Cormen Algorithms) will find this book both terrifyingly terse and frustratingly paced. In many cases, examples are given without derivation. In many cases, important points are made without obvious connection to previous topics. This is not without a solution however, and getting through this book is often an acquired technique of paper noting things asyougo, as well as a learned hyperliteracy. The terseness is also a doubleedged sword, as sometimes I found it useful as an extra opportunity to practice the taught methods to see if I could come to the same result. Further, the reader should be prepared to go back and review propositional logic & university calculus theorems (atleast FTC, definite vs indefinite integrals). For example, the description of sum by parts in the section on finite calculus assumes _much_ from the reader, and being able to use university calc. as a point of reference to get through that is helpful.
A lot of exercises are tersely explained in both problem and solution. Further, many solutions are totally leftfield (having little to do with material in the book). This isn't necessarily bad, as even taking the wrong path to a solution is very educational. However, at some point the reader has to make a judgment as to how long to commit to a certain problem. Many terse problems & leftfield solutions instill the wrong judgment: quitting too early.
Conclusion:
Attention to detail & extra work is necessary to overcome the terseness of this particular beast, but it's worth it. I recommend this book for developers confronted with algorithm optimization problems, as a well as for a different take on parts of discrete math, and definitely for students coming out of a US state school CS program, the last which this book complements very well. Having worked through some of V1 TAOCP, I would also say that the book is effective in expanding upon its math underpinnings (V1 atleast), and incidentally, does give one confidence to tackle Knuth's other works.
The book is great for self study. As with TAOCP, problems are graded. Solutions exist to all problems  except research ones but trying to solve them yourself will be the best way to use this book.
Overall, worth every penny. A classic reference and must have.
Top international reviews
The marginal notes are wonderful.
Das Buch basiert auf einem Kurs, der an der Stanford Universität jährlich seit 1970 gehalten wird; es macht den Leser mit den mathematischen Grundlagen vertraut, die benötigt werden, um Computer Programme und Algorithmen verstehen und zu analysieren zu können.
In den ersten Kapiteln werden Grundlagen zu rekursiven Problemen, Summen, Ganzzahligen Funktionen und Kongruenzen gelegt; danach werden Binominal Koeffizienten und spezielle Zahlen, d.h. Stirling, Euler, Harmonische, Bernoulli und Fibonacci Zahlen, behandelt. Es folgt ein Kapitel über Generator Funktionen, einen der wichtigsten 'Werkzeuge' dieses Werkes. Es handelt sich dabei um ein Methode, mittels (formalen) unendlichen Reihen, eine ganze Folge von Koeffizienten zusammen zu fassen, und somit als ein Objekt behandeln zu können. Es lassen damit u.a. Rekursions Probleme und Eigenschaften von 'speziellen' Zahlen bzw. von Polynom Familien systematisch behandeln.
Ergänzt wird das Buch mit Abschnitten über Diskrete Wahrscheinlichkeiten und Asymptotiken.
Die Komposition des Werk ist ausgezeichnet gelungen, die Darstellung der einzelnen Themen ist elegant und präzise. Neben der, durch langjährige Erfahrung, motivierte Stoffauswahl, tragen auch die geschickt gewählten Bezeichnung zum Erfolg bei; hier sei besonders die [logical expression] Konstruktion – eine Erweiterung des Kronecker Deltas, erwähnt, damit können u.a. auch komplexe Mehrfach Summen effizient manipulieren und umgeformt werden. Alles in Allem ist die Lektüre nicht nur interessant, sondern ein regelrechter Genuss.
Der Text enthält ca. 500 Übungsaufgaben in sechs Schwierigkeitsgraden (von 'warmup' bis 'research problem') – Antworten zu den Aufgaben sind in einem Anhang zu finden. Eine sehr ausführliche Bibliographie, sowie ein Stichwortverzeichnis runden die exzellente Ausstattung ab.
The book is not written like your typical academic text book you see these days. It contains full solutions, in plain and concise English, and a lot of humorous footnotes by TA's and Students.
If you're a freshman or junior in a Computer Science program and just have done Calculus 1 and Discrete Math, you'll want to work through this if you want to masterfully analysis algorithms later on in your program.
Anyways, it's from the Legend himself  Knuth!
Allgemein kann man sagen, dass es eine FRECHHEIT ist für so einen Mist auch noch Geld zu verlangen.
Dies ist explizit eine Beurteilung für das eBook. Das physische Version ist ausnahmslos empfehlenswert.
You've read the top international reviews
Customers who bought this item also bought
There's a problem loading this menu right now.