Amazon.com: The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (9780201853933): Donald E. Knuth: Books


or
Sign in to turn on 1-Click ordering.
Sell Back Your Copy
For a $0.61 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations
 
See larger image
 
Tell the Publisher!
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.

The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations [Paperback]

Donald E. Knuth (Author)
5.0 out of 5 stars  See all reviews (6 customer reviews)

List Price: $19.99
Price: $15.16 & eligible for FREE Super Saver Shipping on orders over $25. Details
You Save: $4.83 (24%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 9 left in stock--order soon (more on the way).
Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more


Book Description

February 24, 2005 0201853930 978-0201853933 1

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

ISBN: 0321751043 

 

 

 

Art of Computer Programming, Volume 4, Fascicle 2, The: Generating All Tuples and Permutations: Generating All Tuples and Permutations

 

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 t regular intervals. Each fascicle will encompass a section or more of wholly new or evised 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 2

This fascicle inaugurates the eagerly awaited publication of Knuth's The Art of Computer Programming, Volume 4: Combinatorial Algorithms. Part of what will be a long chapter on combinatorial searching, the fascicle begins his treatment of how to generate all possibilities. Specifically, it discusses the generation of all n-tuples, then extends those ideas to all permutations. Such algorithms provide a natural motivation by means of which many of the key ideas of combinatorial mathematics can be introduced and explored. In this and other fascicles of Volume 4, Knuth illuminates important theories by discussing related games and puzzles. Even serious programming can be fun.



 

 


Frequently Bought Together

The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations + The Art of Computer Programming, Volume 4,  Fascicle 3: Generating All Combinations and Partitions + The Art of Computer Programming, Volume 4, Fascicle 0: Introduction to Combinatorial Algorithms and Boolean Functions
Price For All Three: $48.96

Show availability and shipping details

Buy the selected items together


Editorial Reviews

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.

I am grateful to all my friends, and record here and now my most especial appreciation to those friends who, after a decent interval, stopped asking me, "How's the book coming?"

--Peter J. Gomes, The Good Book (1996)

This booklet is Fascicle 2 of The Art of Computer Programming, Volume 4: Combinatorial Algorithms. As explained in the preface to Fascicle 1 of Volume 1, I'm circulating the material in this preliminary form because I know that the task of completing Volume 4 will take many years; I can't wait for people to begin reading what I've written so far and to provide valuable feedback.

There will also be a Fascicle 1 for Volume 4. But I've written Fascicle 2 first. Experienced programmers will understand that the initialization of a program usually can't be written properly until after the main body has been fleshed out.

To put the material in context, this fascicle contains Sections 7.2.1.1 and 7.2.1.2 of a long, long chapter on combinatorial searching. Chapter 7 will eventually fill three volumes (namely Volumes 4A, 4B, and 4C), assuming that I'm able to remain healthy. It will begin with a short review of graph theory, with emphasis on some highlights of significant graphs in The Stanford GraphBase, from which I will be drawing many examples. Then comes Section 7.1, which deals with bitwise manipulation and with algorithms relating to Boolean functions. Section 7.2 is about generating all possibilities, and it begins with Section 7.2.1: Generating Basic Combinatorial Patterns. That sets the stage for the main contents of the present booklet, namely Section 7.2.1.1 (where I get the ball rolling by dealing with the generation of n-tuples) and Section 7.2.1.2 (which extends the ideas to permutations). Then will come Section 7.2.1.3 (about combinations), Section 7.2.1.4 (about integer partitions), and Section 7.2.1.5 (about set partitions), all in Fascicle 3. Section 7.2.1.6 (about trees) and Section 7.2.1.7 (about the history of combinatorial generation) will comprise Fascicle 4. Section 7.2.2 will deal with backtracking in general. And so it will go on, if all goes well; an outline of the entire Chapter 7 as currently envisaged appears on the taocp webpage that is cited on page ii.

I had great pleasure writing this material, akin to the thrill of excitement that I felt when writing Volume 2 many years ago. As in Volume 2, where I found to my delight that the basic principles of elementary probability theory and number theory arose naturally in the study of algorithms for random number generation and arithmetic, I learned while preparing Section 7.2.1 that the basic principles of elementary combinatorics arise naturally and in a highly motivated way when we study algorithms for combinatorial generation. Thus, I found once again that a beautiful story was "out there" waiting to be told.

My original intention was to devote far less space to this topic. But when I saw how fundamental the ideas were for combinatorial studies in general, I knew that I could never be happy unless I covered the basics quite thoroughly. Therefore I've done my best to build a solid foundation of theoretical and practical ideas that will support many kinds of reliable superstructures.

The topic of combinatorial generation has not only given me a chance to discuss important mathematical theories, it also has led to other kinds of fun, because of its many connections to amusing games and puzzles. Good puzzles are great aids to education, and I intend to continue focusing on recreational topics throughout Volume 4.

The average boy who abhors square root or algebra finds delight in working puzzles which involve similar principles, and may be led into a course of study which would develop the mathematical and inventive bumps in a way to astonish the family phrenologist.

--Sam Loyd, The World of Puzzledom (1896)

I shall happily pay a finder's fee of $2.56 for each error in this fascicle when it is first reported to me, whether that error be typographical, technical, or historical. The same reward holds for items that I forgot to put in the index. And valuable suggestions for improvements to the text are worth 32 cents each. (Furthermore, if you find a better solution to an exercise, I'll actually reward you with immortal glory instead of mere money, by publishing your name in the eventual book:-)

I wish to thank Yoichi Hariguchi for helping me to build and rebuild the computer on which this booklet was written. And I also want to thank Frank Ruskey for bravely foisting an early draft of this material on college students and for telling me about his classroom experiences.

Notations that are used here and not otherwise explained can be found in the Index to Notations at the end of Volumes 1, 2, or 3. Those indices point to the places where further information is available. Of course Volume 4 will some day contain its own Index to Notations.

Machine-language examples in all future editions of The Art of Computer Programming will be based on the MMIX computer, which is defined in Section 1.3.1' of Volume 1, Fascicle 1. Cross-references to Sections 1.3.1', 1.3.2', 1.4.1', 1.4.2', and 1.4.3' in the present booklet refer to that fascicle.Cross references to yet-unwritten material sometimes appear as '00' in the following pages; this impossible value is a placeholder for the actual numbers to be supplied later.

Happy reading!

D. E. K.

Stanford, California

December 2004


Product Details

  • Paperback: 144 pages
  • Publisher: Addison-Wesley Professional; 1 edition (February 24, 2005)
  • Language: English
  • ISBN-10: 0201853930
  • ISBN-13: 978-0201853933
  • Product Dimensions: 9.7 x 6.4 x 0.4 inches
  • Shipping Weight: 9.9 ounces (View shipping rates and policies)
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (6 customer reviews)
  • Amazon Best Sellers Rank: #634,183 in Books (See Top 100 in Books)

More About the Author

Donald E. Knuth was born on January 10, 1938 in Milwaukee, Wisconsin. He studied mathematics as an undergraduate at Case Institute of Technology, where he also wrote software at the Computing Center. The Case faculty took the unprecedented step of awarding him a Master's degree together with the B.S. he received in 1960. After graduate studies at California Institute of Technology, he received a Ph.D. in Mathematics in 1963 and then remained on the mathematics faculty. Throughout this period he continued to be involved with software development, serving as consultant to Burroughs Corporation from 1960-1968 and as editor of Programming Languages for ACM publications from 1964-1967.

He joined Stanford University as Professor of Computer Science in 1968, and was appointed to Stanford's first endowed chair in computer science nine years later. As a university professor he introduced a variety of new courses into the curriculum, notably Data Structures and Concrete Mathematics. In 1993 he became Professor Emeritus of The Art of Computer Programming. He has supervised the dissertations of 28 students.

Knuth began in 1962 to prepare textbooks about programming techniques, and this work evolved into a projected seven-volume series entitled The Art of Computer Programming. Volumes 1-3 first appeared in 1968, 1969, and 1973. Having revised these three in 1997, he is now working full time on the remaining volumes. Volume 4A appeared at the beginning of 2011. More than one million copies have already been printed, including translations into ten languages.

He took ten years off from that project to work on digital typography, developing the TeX system for document preparation and the METAFONT system for alphabet design. Noteworthy by-products of those activities were the WEB and CWEB languages for structured documentation, and the accompanying methodology of Literate Programming. TeX is now used to produce most of the world's scientific literature in physics and mathematics.

His research papers have been instrumental in establishing several subareas of computer science and software engineering: LR(k) parsing; attribute grammars; the Knuth-Bendix algorithm for axiomatic reasoning; empirical studies of user programs and profiles; analysis of algorithms. In general, his works have been directed towards the search for a proper balance between theory and practice.

Professor Knuth received the ACM Turing Award in 1974 and became a Fellow of the British Computer Society in 1980, an Honorary Member of the IEEE in 1982. He is a member of the American Academy of Arts and Sciences, the National Academy of Sciences, and the National Academy of Engineering; he is also a foreign associate of l'Academie des Sciences (Paris), Det Norske Videnskaps-Akademi (Oslo), Bayerische Akademie der Wissenschaften (Munich), the Royal Society (London), and Rossiiskaya Akademia Nauk (Moscow). He holds five patents and has published approximately 160 papers in addition to his 28 books. He received the Medal of Science from President Carter in 1979, the American Mathematical Society's Steele Prize for expository writing in 1986, the New York Academy of Sciences Award in 1987, the J.D. Warnier Prize for software methodology in 1989, the Adelskøld Medal from the Swedish Academy of Sciences in 1994, the Harvey Prize from the Technion in 1995, and the Kyoto Prize for advanced technology in 1996. He was a charter recipient of the IEEE Computer Pioneer Award in 1982, after having received the IEEE Computer Society's W. Wallace McDowell Award in 1980; he received the IEEE's John von Neumann Medal in 1995. He holds honorary doctorates from Oxford University, the University of Paris, St. Petersburg University, and more than a dozen colleges and universities in America.

Professor Knuth lives on the Stanford campus with his wife, Jill. They have two children, John and Jennifer. Music is his main avocation.

 

Customer Reviews

6 Reviews
5 star:
 (6)
4 star:    (0)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
5.0 out of 5 stars (6 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

10 of 10 people found the following review helpful:
5.0 out of 5 stars Combinatorial Programming Simplified!, October 10, 2006
By 
This review is from: The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Paperback)
First, I would like to say this is the first Donald Knuth book I have read, only because every programmer respects TAOCP so much that they say it is too hard for the hobby programmer. I have a small background in Computer Science, and some mid-level Math; yet Knuth walks you through some of the most exciting Computer Science problems you could ever dream of with ease! I came to find this book perfect, mostly because my favorite Programming problem is the Traveling Salesman, this book as well as fasicles 3 and 4, are the perfect reference to find great ways to venture into the unsolved TSP Algorithm, and the feared Hamilitonian Cycle.

Reading about gray generation I immediatly found so much more value to this book than I ever expected. As well, the book then jumps into ways to use loopless generation( which blew my mind! ). Then the best part comes in the second half of the book, "Generating All Permutations" First it starts with a brute force method for achieving all permutations, then Algorithm L to G(my favorite algorithm in the book...) is the largest hurtle in the book; I actually bought the whole TAoCP volumes so I could get through this part because it goes over permutation pre-multiplication ( Knuth has a better way of defining this ), although the idea is simple, an effective way to implement and explore pre-multiplication I found to be extremely important and should not be over looked. Then after that the diffictulty goes to equal as the first half.

In summary this book is deffinitly worth the wait, and it helps a person, no matter how experienced, to explore new ways to venture out of the straight and narrow, and into an arena of problems that few dare to venture.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


25 of 32 people found the following review helpful:
5.0 out of 5 stars a solid compendium of challenging problems, April 25, 2005
This review is from: The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Paperback)
This preliminary excerpt from Knuth's Volume 4 will please all the fans of his seminal first three volumes. The didactic style is the same. So too is the very distinctive Tex typeface. (You know that he invented Tex, don't you?)

Of course, there are the problem sets. This little book has two sections. In each are 112 problems. Strewth! Knuth thoughtfully gives an estimate next to each of how long it will take you to solve it. Those estimates probably refer to someone of his calibre. I've attempted most of the problems in his earlier volumes and could typically only get within a factor of two of the time estimate. And this was only when I could actually solve a problem.

The book addresses a gap in the literature of computer science. Research papers in journals or books of conference proceedings do not usually present you with problems. While introductory texts do, but those are simple. Very difficult to find a solid compendium of challenging problems.

Such is the attraction of this book to me and perhaps to you. The potential readership is exclusive and self selecting. The only drawback is the wait for the rest of Volume 4.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


3 of 4 people found the following review helpful:
5.0 out of 5 stars Brief but worthwhile, August 12, 2007
This review is from: The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Paperback)
Combinatorial problems arise in a wide range of contexts. Among combinatorial problems, generation of all distinct sets of some size (tuples) or all rearrangements of the objects (permutations) occur commonly, often as the first step in a larger calculation. Knuth addresses some important classes of such problems in this book.

Even "all possible permutations" leaves a wide range of choices open. For example, should the list be in alphabetical order? Should it minimize the number of differences between consecutive elements? Many other constraints can be imposed as well, even esthetic ones! "Ringing the changes" on a carillon is one such combinatorial problem, with a long history and criteria for beauty all its own. However choices are made, the next step is to specify a way of creating the list. This can have constraints of its own. For example, it may be neccesary to create the next arrangement in the sequence knowing only the current element of the sequence. Knuth offers different algorithms for meeting different sets of constraints. If none of them match your needs, then the references will help you find something that does, or the discussion and exercises will help you develop one of your own.

Although useful, this book is very brief. 144 pages isn't a lot. Take away 45 pages just for solutions to exercises, then more for index and exercises, and the text is surprisingly brief. What's left carries its weight, though. It's a valuable addition to almost programmer's library.

-- wiredweird
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews




Only search this product's reviews




Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject