Jump to ratings and reviews
Rate this book

Art of Computer Programming

The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions

Rate this book
Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually. The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e 0321751043 Art of Computer Programming, Volume 4, Fascicle 3, Generating All Combinations and Generating All Combinations and Partitions This multivolume work on the analysis of algorithms has long been recognized as the definitive description of classical computer science.The three complete volumes published to date already comprise a unique and invaluable resource in programming theory and practice. Countless readers have spoken about the profound personal influence of Knuth's writings. Scientists have marveled at the beauty and elegance of his analysis, while practicing programmers have successfully applied his “cookbook” solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. To begin the fourth and later volumes of the set, and to update parts of the existing three, Knuth has created a series of small books called fascicles, which will be published at regular intervals. Each fascicle will encompass a section or more of wholly new or revised material. Ultimately, the content of these fascicles will be rolled up into the comprehensive, final versions of each volume, and the enormous undertaking that began in 1962 will be complete. Volume 4, Fascicle 3 This fascicle continues Knuth's authoritative chapter on combinatorial algorithms, ultimately to be included in Volume 4 of The Art of Computer Programming . The previous fascicle from Volume 4, which covered the generation of all tuples and permutations, is now complemented by techniques for generating all combinations and partitions. In Knuth's thorough discussion of these two topics, readers will find much that is new, as well as surprisingly rich ties to material in Volumes 1 through 3 and to other aspects of computer science and mathematics. As usual, this fascicle includes a bounty of creative exercises, as well as intriguing challenges posed by yet-unsolved questions.

160 pages, Paperback

First published August 5, 2005

2 people are currently reading
339 people want to read

About the author

Donald Ervin Knuth

107 books717 followers
Donald Ervin Knuth, born January 10th 1938, is a renowned computer scientist and Professor Emeritus of the Art of Computer Programming at Stanford University.

Author of the seminal multi-volume work The Art of Computer Programming ("TAOCP"), Knuth has been called the "father" of the analysis of algorithms, contributing to the development of, and systematizing formal mathematical techniques for, the rigorous analysis of the computational complexity of algorithms, and in the process popularizing asymptotic notation.

In addition to fundamental contributions in several branches of theoretical computer science, Knuth is the creator of the TeX computer typesetting system, the related METAFONT font definition language and rendering system, and the Computer Modern family of typefaces.

A prolific writer and scholar, Knuth created the WEB/CWEB computer programming systems designed to encourage and facilitate literate programming, and designed the MMIX instruction set architecture.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
27 (58%)
4 stars
17 (36%)
3 stars
2 (4%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 2 of 2 reviews
Profile Image for Nick Black.
Author 2 books879 followers
August 5, 2008
---- preread ----

Amazon 2008-07-05. I've three reasons for paying good money for this preprint (I ordered Facsimile 0 of Volume 4 along with this Facsimile 3; I have not yet been moved to acquire Facsimiles 1, 2 or 4):

a) Knuth's likely going to die before volume 4's finished, as he's made it clear volume 5 is considered much more integral to his great plan than volumes 6 and 7 (see the TAOCP page). Volume 5 represents the border regions of Knuth's great dominance gaps (this is the man, recall, who put the K in KMP), although the Knuth-Bendix algorithm might have something to say about that. Volume 5 won't be near completion until 2015, unless he cribs most of it from Jewels in Stringology.

b) I have a number of tough combinatorial automata I'm frankly unable to analyze with my current techniques. Here's hoping The Greatest of All Time has a few more tricks to share with us.

c) The error rate's likely to be highest in these early prints, and I'd like to win a Knuth check for the walls of the Dankcave.

---- postread ----

Not as impressive, on first (very quick) read, as V4F0 or any of the material in V1 or V2...hrmm :/. I'm hoping I missed something by virtue of reading the V4F's out of order; I intend to remedy the F1, F2 gap shortly. From what I've seen in F3, though, I'm questioning the broad applicability of the topics of V4 (given the three-subvolume level of detail they've been allocated)...however, I did read the majority of this F3 immediately following nitrous-intensive dental work ("Dr., I should let you know: I've had fairly extensive recreational nitrous experience. As in, think 'fairly extensive', and now square that, and perturb it to first order. Tank me up, bitch, and get me high; it's time we got the filth out!."), and thus might not have been in my trimmest intellectual form. Furthermore, like Caesar's Gallia [0] my recent coding efforts have been divided trichotomously:

a) edge-triggered, arbitrarily-parallelizeable I/O closed over all UNIX async mechanisms (signals, timers, IPC, memory notification, the whole bag) -- dragging Erlang, essentially, kicking and screaming into the brackish backwaters of mainstream UNIX development via molesting its elegant I/O model into libev-like callback-driven event loops,

b) modifications of the glushkov and thompson automata constructions for bioinformatic applications (likely major focus if i go Bioinformatics for PhD). see Jewels of Stringology, Flexible Pattern Matching in Strings, Biological Sequence Analysis, the BLAST paper, etc

c) similar automata-based applications to compiler backends (see the RABLET research project) and all kinds of network security models / implementations (likely major focus if i go CS for PhD), see...umm, dankamongwikis if you're interested

leaving me perhaps less receptive, at least in the short term, to drastically different techniques from those to which I'm accustomed. I'll definitely be rereading this prior to doing the problem sets, and following F1+F2.

[0] I apologize for such a pointless joyride back to 8th grade Latin. Omnia Gallia est divisa in tres partes, hurrah!
Displaying 1 - 2 of 2 reviews

Can't find what you're looking for?

Get help and learn more about the design.