Mathspp Blog

342 391,958 32,910
articles words lines of code

Alice and Bob sit across each other, ready for their game of coins. Who will emerge victorious?

Can you find a really large triangle that is also really tiny?

In this Pydon't we conclude the slicing trilogy and take a look at the inner workings of Python slicing, from the built-in slice type to the dunder method __getitem__ and its siblings.

In this Pydon't we cover advanced topics related to sequence slicing, like (negative) steps, more idiomatic sequence slicing, slice assignment, and slice deletion.

This is an algorithmic puzzle where you just have to turn some coins.

In the fifth article of this short series we will be handling some subtleties that we overlooked in our experiment to classify handwritten digits from the MNIST dataset.

This article covers the basics of sequence slicing in Python and teaches you some idiomatic slicing patterns to write more elegant code.

In this article we use (finite state) automatons to count 698,438,863,898,480,640 passwords in a couple milliseconds.

A short article with all you need to know about sequence indexing in Python – and a bit more.

Two doors, one gives you eternal happiness and the other eternal sadness. How can you pick the correct one?

If you need to access the items of an iterable but also keep track of their indices, have you considered using enumerate? Let's talk about another of Python's amazing tools to work with for loops.

Syncro is a beautiful game where you have to unite all the petals in a single flower. In how many moves can you do it?

In part 4 of this series we add some unit testing, improve our tokenizer and implement the primitives ⍴ and ⍀.

for loops are the bread and butter of imperative programming and Python has some really nice tools to work with them. If you want to traverse several structures in parallel, have you considered using zip?

A waiter at a restaurant gets a group's order completely wrong. Can you turn the table to get two or more orders right?

Structural pattern matching is coming in Python 3.10 and the previous Pydon't explored some interesting use cases for the new match statement. This article explores situations for which match isn't the answer.

In the fourth article of this short series we will apply our neural network framework to recognise handwritten digits.

Structural pattern matching is coming in Python 3.10 and this article explores how to use it to write Pythonic code, showing the best use cases for the match statement.

A bunch of ants are left inside a very, very, tight tube, and they keep colliding with each other and turning around. How long will it take them to escape?

The third article of this short series concerns itself with the implementation of the backpropagation algorithm, the usual choice of algorithm used to enable a neural network to learn.