From 3.5 billion Reddit comments

ProductGPT

Try the custom AI to help you find products that Reddit loves.

5 points

·
18th Jul 2020

I think a good book that covers that basic mathematics needed to understand and use algorithms is *Concrete Mathematics*. Some of the problem sets are rather challenging, but you don’t need any special math knowledge to get started. It covers both **con**tinuous math topics, as well as dis**crete**. It’s co-written by the algorithms god himself, Donald Knuth.

If you struggle with some algebra concepts, I would also recommend Khan Academy. I’ve used it pretty extensively to brush up on topics I haven’t seen in a while.

https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

2 points

·
30th Mar 2021

Well, the example you posted would be covered indeed by a course on discrete math. Are you familiar with induction and inductive proofs? I can recommend going over Concrete Mathematics. That book should put you well over what's needed for algos and data structures

2 points

·
8th Apr 2015

Start with Concrete Mathematics. This is the combinatorics and number theory needed to get into The Art of Computer Programming and is also written by Don Knuth (with additional help from Ron Graham and Oren Patashnik).

1 point

·
10th Sep 2021

He also wrote a pretty decent Math book (If I say so myself and others apparently agree with me considering that it has run for two editions without really being a popular university textbook).

So clearly, even if you find his books on Computer Programming to be "basically nothing to do with computer programming", there is other published value that he provides.

> collections of presumably outdated algorithms.

I find this a claim that says more about you than Knuth. What makes an algorithm "outdated"? After all, a lot of introductory programming books start off with the Euclidean Algorithm to find the GCD of two integers, which Wikipedia tells me has at least appeared in 300 BC.

As someone else said, the purpose of studying algorithms (and a lot of books fall into the trap of making this about a museum of algorithms) is to understand how to systematically break down a problem into standard abstract principles. I think the collection of work that Knuth has provided certainly indicates that he has thought a great deal about the subject.

> The guy has been paid as a professor to write seemingly esoteric books as personal projects.

So what? Stanford is a private university that is entitled to spend their money as they please. Clearly, all parties (him, the students who apparently enjoy his books, the university) are happy or they'd have stopped engaging in this ritual.

Also, while you are not wrong that it is __esoteric__, you are in Math. A lot of Math is esoteric depending on what the reference class is. A book on algorithms is esoteric to someone who is struggling to figure out whether 1/3 or 1/4 is bigger. So this isn't quite the catchy insult that you seem to imply that it is.

1 point

·
21st Feb 2021

I recommend reading Concrete Mathematics. Most of the material in that book is applicable to some project euler problems. Also The Art and Craft of Problem solving covers a lot of techniques that are essential for solving math problems. You can find older version of these books online.

1 point

·
6th Oct 2020

Why not also consider learning maths on the side too? Having a crap maths teacher can screw things up for your foundations but there are plenty of good maths books out there...

https://www.amazon.com/dp/0201558025/ref=cm_sw_r_cp_api_fab_rCjFFbDGX68CJ

1 point

·
30th Apr 2019

Generally after CLRS you should be ready to read TAOCP. But if you still feel insufficient, Professor Knudth has another book that you can look into to enhance the math background - Concrete Mathematics: A Foundation for Computer Science.

1 point

·
7th Dec 2017

This is the book we used in my probability/stats class this past term and we'll be using it again in the winter. I can definitely second the recommendation. Really, my only minor gripe with the book is that its z-table and t-table give the area under the standard normal curve to the right of the point, whereas I'm used to seeing tables that give the left area. However, that's just a personal nitpicky thing and I can't really dock any points from the book's overall quality for it.

As an additional recommendation, since you're interested in machine learning as well as brushing up on your combinatorics skills, you might also try Concrete Mathematics by Ronald Graham, Donald Knuth, and Oren Patashnik. As its name and authors would suggest, it's a mathematics textbook but it's really aimed at topics that have applications for computer programming. As they describe it, the topics are "a blend of CONtinuous and disCRETE mathematics"

1 point

·
25th Dec 2017

You can always learn it on your own. Try working through a book like Concrete Mathematics by Knuth et al. It's not an easy ride, but it can be navigated by anyone with a bit of willpower (of course having been provided some exposure to related material is beneficial).

https://www.amazon.ca/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

1 point

·
15th Jun 2016

I have Rosen's book. Haven't studied out of it, but use it as a reference sometimes. I get the feeling that both Epp and Rosen are on the same level(difficulty or otherwise). Right now I am going over forgotten elementary number theory to prepare for Concrete Math by Graham/Knuth/Patashnik which looks much more involved as compared to both Epp and Rosen (just by comparing the exercises).

1 point

·
18th Apr 2015

Well, since you are looking to teach yourself high level mathematics in a short period of time, Concrete Mathematics is a book on mostly discrete mathematics that has a ton of advanced math techniques your college courses might not cover (but are still useful). Problem solving classes (for, say, the Putnam competition) sometimes use this book. It covers material at a rather high level, but it's also written in an easy to read prose, rather than the dry matter of fact ones you find in other math texts. Even so, nothing in the proofs is skipped, and the notation is very precise (emulate it!). You might want to look online for some short pdf guides on how to write proofs (and maybe inductive proofs) before trying this text out.

As with reading any math, you should attempt as many questions as you feel comfortable doing.

1 point

·
23rd Feb 2015

Lots of good advice here. But I'd give this a look as well. It's been on my short list for a while: http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/ref=sr_1_2?ie=UTF8&qid=1424661433&sr=8-2&keywords=math+for+programmers

1 point

·
20th Nov 2012

Study this book: http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/

There are approximately sixteen bijillion different kinds of infinite sums, so it's pretty impossible to tell you tips for all of them. You should at bare minimum be familiar with geometric series.

1 point

·
26th Jan 2012

Out of curiosity, what book are you using? If it isn't Concrete Mathematics, you might get some help from reading the first section in this book about recurrences. It is a great book and helped me a lot when I took combinatorics, i.e. learned how to count.

1 point

·
18th Mar 2010

I just ran across this in chapter 2 of Concrete Mathematics and it blew me away. Finite calculus (already done by cwcc) is one way to derive it, but here is another way that uses a couple of tricks.

First notice that

2[1(1 + 2 + ... + n) + 2(2 + 3 + ... n) + ... + n(n)]

= 2[1(1) + 2(1 + 2) + n(1 + 2 + ... + n)]

= 2[1(1 + 1)1/2 + 2(1 + 2)2/2 + ... + n(1 + n)n/2] , using the sum of an arithmetic progression

= (1^3 + 2^3 + ... + n^3) + (1^2 + 2^2 + ... + n^2).

The first line can be rewritten as

[(1 + 2 + ... + n) + 2(1 + 2 + ... + n) + ... + n(1 + 2 + ... + n)] + (1^2 + 2^2 + ... + n^2), the sum of the upper triangular elements of a symmetric matrix

= (1 + 2 + ... + n)^2 + (1^2 + 2^2 + ... + n^2).

Comparing this with the fourth line yields the result.

The trouble is that tricks are OK, but I was hoping for a deeper reason.

64 points

·
4th Oct 2019

Long answer is here

Short answer is "stop whining and learn while you still can"

Regards,

Someone who didn't

16 points

·
17th Dec 2018

A couple years ago a coworker turned me onto a book he coauthored, <u>Concrete Mathematics</u>. Absolute must read/reference if you write a lot of math-y code.

9 points

·
7th Mar 2019

There's a truly fantastic presentation of the Josephus problem, along with a lot of other great approachable mathematics presented in engaging style, in Knuth's <u>Concrete Mathematics</u>

I'd recommend that and Cuoco's <u>Mathematical Connections</u>, along with any good Martin Gardner collection as great alternatives to textbooks for folks who just want to play around with problems

2 points

·
20th May 2021

Curious, did you start with Concrete Mathematics first, or did you jump right into it?

2 points

·
17th Sep 2015

And this is a great book. Maybe not the first book you should read on the subject, but one you should read at some point.

http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

1 point

·
6th Dec 2022

Maybe this book will answer your question .

https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

1 point

·
15th Jul 2022

I vaguely recall Concrete Mathematics covering Josephus and its generalizations in one of the early chapters. You might want to take a look at that.

1 point

·
4th Jun 2022

On the math side, focus on Discrete Mathematics books and courses. That will be the most immediately useful and foundational. There are three books I recommend. The first one here is a staple at schools: https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

Then go to this one: https://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/1337694193/ref=zg_bs_13913_9/135-0737937-5619168?pd_rd_i=1337694193&psc=1

For more advanced work and something that has a lot of future applications, this one:https://www.amazon.com/Introduction-Graph-Theory-Dover-Mathematics/dp/0486678709/ref=zg_bs_13913_5/135-0737937-5619168?pd_rd_i=0486678709&psc=1

1 point

·
28th Apr 2022

I recommend these books:

1 point

·
3rd Apr 2022

Maybe not exactly what you're looking for but you might want to look at Concrete Mathematics by Donald Knuth, et al. Much like other Knuth books, it's less about programming than it is about the theory underlying programming (in this case discrete mathematics).

Technically it's a textbook but many years ago, we used it to solve some real-world problems as it was one of the very few practical references (at least at the time) for computing Stirling numbers.

1 point

·
13th Jan 2018

You might be interested in mathematics more than you are in CS. I'm self studying abstract algebra and reading through concrete mathematics

1 point

·
24th May 2017

Knuth, Patashnik, and Graham's Concrete Mathematics.

Sedgewick and Flajolet's An Introduction to the Analysis of Algorithms.

1 point

·
9th Oct 2016

And for computer science-related math:

[Easier] https://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025/

[Harder] Volume 1 of https://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxed/dp/0321751043/

1 point

·
2nd Jun 2016

I've been told that this math book covers most of the basic material in CS: https://www.amazon.ca/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025

Haven't taken a look at it yet, though.

1 point

·
3rd Jun 2016

1 point

·
6th Dec 2015

Read this book: Concrete Mathematics by Graham, Knuth, Patashnik. It should help!

1 point

·
17th Nov 2015

I might recommend:

Probably one of the most important and powerful techniques in combinatorics is the probabilistic method, first developed by Paul Erdös (a name you'll hear over and over if you continue to study combinatorics and discrete mathematics). It's really the first technique that takes combinatorics beyond clever counting tricks, but unfortunately it's not often covered except in more advanced classes.

I recommend *The Probabilistic Method* if you want to learn more about it.

1 point

·
9th Sep 2015

If you are struggling with the mathematics, the perfect companion book is Concrete Mathematics

1 point

·
13th Jun 2015

Since you're so proactive in your education, I thought you should know about these sites:

avxsearch.se(usually carries books that are not on either site above)

Here's a nice free book you might like: Book of Proof

Also, you should know about the book below:

1 point

·
10th Apr 2012

I like the book Concrete Mathematics http://www.amazon.com/dp/0201558025/

1 point

·
1st Jun 2010

I haven't had much of any formal schooling, but there is a lot of good material available for self-study that is freaking great. If your program was weak, check out SICP and Concrete Mathematics

0 points

·
28th Sep 2010

Concrete Mathematics, by Graham, Knuth, and Patashnik (Amazon )

< $50

$50 - $100

$50 - $100