No matter who you ask, programming requires at least a little math. That said, for most programmers, it doesn't require too much. For the most part, depending on your specialty, you will probably not see too much calculus or differential equations. Honestly, you could probably get away with what you learned in high school.
However, this is a book about algorithms, and algorithms sometimes require a deeper understanding of mathematics. This section attempts to provide the mathematical foundations that you will need to understand certain algorithms. As we add new algorithms and need new mathematical tools, we will add them to this section.
A notable exception to this rule will be in the case of classes of algorithms that require domain-specific knowledge, like quantum simulations or bioinformatics. In those cases, we will place the mathematical methods in more relevant sections.
The code examples are licensed under the MIT license (found in LICENSE.md).
The text of this chapter was written by James Schloss and is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
After initial licensing (#560), the following pull requests have modified the text or graphics of this chapter: