When we think of prime numbers, the first thing that we tend to associate them with is randomness. Prime numbers are scattered all over the number line and there is no fixed formula that can tell you when the next one is going to occur. This has been used heavily by mathematicians and cryptographers to develop security systems for internet, banking, communication, and so on. Coming to the topic at hand, we are going to talk about prime divisors of a given number. Prime divisors of a number are divisors of that number that happen to be prime numbers. Big surprise, right? Alright, what’s so interesting about them? Continue reading

# The Interesting Case Of Russell’s Paradox

The picture on the left is actually a joke related the topic of discussion here. It’ll make sense soon! Russian Dolls, also known as Matryoshka Dolls, are wooden dolls that are placed inside one another. You can read more about them here. Back in the late 1800s, Set Theory was really picking up pace and mathematicians were getting really intrigued by this field. They were devotedly working towards formalizing this field of study. The problem was that there were many loose definitions floating around and there wasn’t any concrete work towards formalizing it. It all started when naive set theory was being used to discuss the foundation of mathematics. Instead of describing set theory with formal logic, people were describing it informally using words. So why should we care about that? What’s wrong with using words to describe set theory? Continue reading

# What’s So Interesting About The Prime Counting Function?

Mathematicians have obsessed over prime numbers for centuries, and will continue to do so for the foreseeable future. Prime numbers are so enigmatic and fascinating that mathematicians just can’t stop thinking about them! Prime counting function is probably one of the most famous problems in this domain. This function simply counts the number of prime numbers less than or equal to a given number. Pretty straightforward! But why is this of such great importance? What are we going to do with this information? Continue reading

# What Is Bayesian Information Criterion?

Let’s say you have a bunch of datapoints and you want to come up with a nice model for them. We want this model to satisfy all the points in the best possible way. If we do this, then we will be able to use a mathematical formula to extract information about unknown points. At the same time, we should make sure that we don’t overfit our model to these datapoints. If we overfit our model, then it will tune itself too much to our datapoints and perform poorly on unknown data. So how we pick the best model? Where do we draw the line? Continue reading

# How To Add Swap Space On Ubuntu

Whenever you are building an application that’s memory intensive, you are bound to run into memory issues. Those out of memory errors are painful to deal with, especially when they happen during production. Before putting your code on your server, you need to make sure that it can handle the application’s memory requirements. But even if you are careful, something might still go wrong and you might end up running into memory issues. One of the easiest ways to deal with this is by adding some swap space. Now how will it help our case? How can we use it on Ubuntu? Continue reading

# Why Are They Called “Elliptic” Curves?

Have you heard of elliptic curves before? They are used extensively in number theory and cryptography. The reason elliptic curve cryptography is gaining popularity is because it’s fundamentally much stronger than the RSA algorithm, the algorithm that we all love and adore. If you don’t know what elliptic curves are, just google it and see what they look like. You are reading this sentence without googling it, aren’t you? Okay I’m going to assume that you know what elliptic curves look like. Do they look anything like ellipses? No! So why are they called “elliptic” curves? Continue reading

# What Is External Sorting?

Sorting is one of the most common things we do in programming. We are given a bunch of numbers and we want to arrange them according to some rule. Let’s say we want to arrange them in ascending order. To sort these numbers, people tend to use a sorting algorithm that takes place entirely within the memory of a computer. The memory we are talking about is the RAM. Here, we take all the numbers and store them in the memory so that we can sort them. This is possible only when the amount of data is small enough to be stored in the memory. What if we have a hundred trillion numbers to be sorted? It’s too big to be stored in the computer’s memory. How do we do it? Continue reading