Hello everyone!
Since I started programming, I have faced difficulties in solving problems related to Permutations, Combinations and Probability. I do solve problems related to these topics but whenever I encounter a new problem, I find it pretty difficult to formulate the solution.
I have average background in Maths and I am willing to dedicate time on improving my Math skills.
Any suggestion regarding good learning sources and problems are welcomed.
Thank you!
I am preparing myself to enter M.S. program in Appplied Mathematics. I have asked an advice from the people who successully passed entrance exams about preparation.
All of them said that the book An Introduction to Probability Theory and Its Applications is the best in its kind to really understand probability.
Just look at the introduction:
"Probability is a mathematical discipline whose aims are akin to those, for example, of geometry or analytical mechanics. In each field we must carefully distinguish three aspects of the theory:
(a) the formal logical content,
(b) the intuitive background,
(c) the applications.
The character, and the charm, of the whole structure cannot be appreciated without considering all three aspects in their proper relation."
And this is my favorite part in the intro:
"Axiomatically, mathematics is concerned solely with relations among undefinded things. This aspect is well illustrated by the game of chess. It is impossible to "define" chess otherwise than by stating a set of rules. The conventional shape of the pieces may be described to some extent, but it will not always be obvious which piece is intended for "king". The chessboard and the pieces are helpful, but they can be dispensed with. The essential thing is to know how the pieces move and act. It is meaningles to talk about the "definition" or the "true natue" of a pawn or a king. Similarly, geometry does not care what a point and a straight line "really are." They remain undefined notions, and the axioms of geometry specify the relations among them: two points determine a line, etc. These are the rules, and there is nothing sacred about them. Different forms of geometry are based on different sets of axioms, and the logical structure of non-Euclidean geometries is independent of their relation to reality. Physicists have studied the motion of bodies under laws of attraction different from Newton's, and such studies are meaningful even if Newton's law of attraction is accepted as true in nature."
I'm really expecting some yellow/red coders who were once weak in maths to share their experiences on how they overcomed their lackings.
You may have a look at the number theory, combinatorics and probability lectures by Kevinsogo at the Indian programming camp. They have quality maths content explained in them. Also, some of the things are explained in more general terms.
Link : https://blog.codechef.com/2016/08/03/lectures-from-indian-coding-camp/
There is an excellent course on MIT OCW covering the mathematical topics needed for computer science , you could take a look at it .
Mathematics for Computer science
This is a bit irrelevant but can you explain the recurrence used in this question http://codeforces.net/contest/352/problem/D , i maen how it is derived , the third point in the editorial is not clear
Right now, I'm reading this book:
the Art of Problem Solving: Introduction to Counting & Probability
Here are reasons why I'm strongly recommend this book (as someone who had troubles to get through another math books) and in general all other books of the Art of Problem Solving:
The big problem, in my opinion, with many traditional math books is that they put way too much emphasis on formal definitions and too little emphasis on how to apply a theory in practice. Knowing bunch of formal definitions will get you nowhere in math or programming contests (and in another areas as well). The book I'm talking about is specifically made for math olympiads training. Virtually all of the material in the book (including introduction to theorems and proofs) is given in the form of problems with similar statements like you see in olympiads (some problems are actually taken from various math olympiads). So you learn by solving problems and check the solutions (in the beginning they explain how to use the book);
Usually I got stuck just after first few chapters in some math book, and subsequently drop reading book after some frustration. This book is different is that difficulty of material grow very slowly (you may even get bored in the beginning because it's super easy but don't skip beginning of the book). I managed to advance to chapter 9 in just two months;
As far as I understand the Art of Problem Solving books are recommended in US math olympiad community (although, I'm talking as outsider, I'm not in that community);
The book also gives you general advices how to solve logical/math problems;
You may check if you are ready for this book and check if your level below or above of this book.
If this book is too easy for you, you can try their next book — Intermediate Counting & Probability.
This is actually my first math book which I didn't drop after first few chapters!
P.S. I also recommend to read author's article about problem solving in general. I'm just started to understand what I'm actually dealing with while solving problems on CodeForces.
agree, great book/book series
brilliant.org ..This is the best place to practice These Topics. I hope this helps :)