Screenshot 2565-04-08 at 20.12.01

Finding the average distance in an equilateral triangle

In the previous post I looked at the average distance between 2 points in a rectangle.  In this post I will investigate the average distance between 2 randomly chosen points in an equilateral triangle.

Drawing a sketch.

The first step is to start with an equilateral triangle with sides 1.  This is shown above.  I sketched this using Geogebra – and used some basic Pythagoras to work out the coordinates of point C.

Screenshot 2565-04-08 at 20.15.37

I can then draw a square of sides 1 around this triangle as shown above.  I’m then going to run a Python program to randomly select points and then work out the distance between them – but I need to make sure that the 2 points chosen are both inside this triangle.  For this I need to work out the equation of the line AC and CB.

Using basic coordinate geometry we can see that the line AC has equation y = √3x.  We want the inequality y < √3x so that we are on the correct side of this line.

The line BC has equation y = -√3x + √3.  Therefore the triangle must also satisfy the inequality y < -√3x + √3.

I can then run the following code on Python, with finds the average distance between points (a,c) and (b,d) both within the unit square but also subject to the 2 inequality constraints above.

Screenshot 2565-04-08 at 20.22.08

When this is run it performs 999,999 trials and then finds the average distance.  This returns the following value:

Screenshot 2565-04-08 at 20.25.29

So we can see that the average distance is just over a third of a unit.

Finding the average distance of an equilateral triangle of length n.

Screenshot 2565-04-08 at 20.29.59

We can then draw the sketch above to find the equation of lines AC and CB for an equilateral triangle with lengths n.  This leads to the following inequalities:

 y < √3x

 y < -√3x + √3n

So we can then modify the code as follows:

Screenshot 2565-04-08 at 20.41.51

This then returns the average distances for equilateral triangles of sizes 1 to 10.

Screenshot 2565-04-08 at 20.42.08

And when we plot this on Desmos we can see that there is a linear relationship:

Screenshot 2565-04-08 at 20.45.11

The regression line has gradient 0.36 (2sf) so we can hypothesise that for an equilateral triangle of size n, the average distance between 2 points is approximately 0.36n.

Checking the maths

I then checked the actual equation for the average distance between 2 points in an equilateral triangle of sides n:

Screen Shot 2022-04-08 at 8.54.42 PM

This gives us:

Screen Shot 2022-04-08 at 8.57.43 PM

So we can see that we were accurate to 2 significant figures.  So this is a nice mixture of geometry, graphing and computational power to provide a result which would be otherwise extremely difficult to calculate.

Screen Shot 2022-04-06 at 11.15.38 AM

What is the average distance between 2 points in a rectangle?

Say we have a rectangle, and choose any 2 random points within it.  We then could calculate the distance between the 2 points.  If we do this a large number of times, what would the average distance between the 2 points be?

Monte Carlo method

The Monte Carlo method is perfect for this – we can run the following code on Python:

Screen Shot 2022-04-06 at 11.33.05 AM

This code will find the average distance between 2 points in a 10 by 10 square.  It does this by generating 2 random coordinates, finding the distance between them and then repeating this process 999,999 times.  It then works out the average value.  If we do this it returns:

Screen Shot 2022-04-06 at 11.36.13 AM

This means that on average, the distance between 2 random points in a 10 by 10 square is about 5.21.

Generalising to rectangles

I can now see what happens when I fix one side of the rectangle and vary the other side.  The code below fixes one side of the rectangle at 1 unit, and then varies the other side in integer increments.  For each rectangle it then calculates the average distance.

Screen Shot 2022-04-06 at 11.38.05 AM

This then returns the first few values as:

Screen Shot 2022-04-06 at 11.40.04 AM

This shows that for a 1 by 1 square the average distance between two points is around 0.52 and for a 1 by 10 rectangle the average distance is around 3.36.

Plotting some Desmos graphs

Screen Shot 2022-04-05 at 8.32.49 PM

Because I have included the comma in the Python code I can now copy and paste this straight into Desmos.  The dotted green points show how the average distance of a 1 by x rectangle changes as x increases.  I then ran the same code to work out the average distance of a 10 by x rectangle (red), 20 by x rectangle (black), 30 by x rectangle (purple) and 100 by x rectangle (yellow).

We can see if we continue these points further that they all appear to approach the line y = 1/3 x (dotted green).  This is a little surprising – i.e when x gets large, then for any n by x rectangle (with n fixed), an increase in x by one will tend towards an increase in the average distance by 1/3.

Heavy duty maths!

There is actually an equation that fits these curves – and will give the average distance, a(X) between any 2 points in a rectangle with sides a and b (a≥b).  Here it is:

Screen Shot 2022-04-06 at 5.38.59 PM

I added this equation into Desmos, by changing the a to x, and then adding a slider for b.  So, when I set b=1 this generated the case when the side of a rectangle is fixed as 1 and the other side is increased:

Screen Shot 2022-04-06 at 8.00.28 PM

Plotting these equations on Desmos then gives the following:

Screen Shot 2022-04-06 at 5.46.51 PM

Pleasingly we can see that the points created by our Monte Carlo method fit pretty much exactly on the lines generated by these equations.  By looking at these lines at a larger scale we can see that they do all indeed appear to be approaching the line y = 1/3 x.

General equation for a square

We can now consider the special case when a=b (i.e a square).  This gives:

Screen Shot 2022-04-06 at 6.11.34 PM

Which we can simplify to give:

Screen Shot 2022-04-06 at 6.11.42 PM

We can see therefore that a square of side 1 (a=1) will have an average distance of 0.52 (2dp) and a square of side 10 (a=10) will have an average distance of 5.21  – which both agree with our earlier results.

Plotting Pi and Searching for Mona Lisa

This is a very nice video from Numberphile – where they use a string of numbers (pi) to write a quick Python Turtle code to create some nice graphical representations of pi.  I thought I’d quickly go through the steps required for people to do this by themselves.

Screen Shot 2022-02-04 at 12.14.47 PM

Firstly you can run the Turtle code on  If you type the above code this will take the decimal digits of pi one at a time and for each one move forward 10 steps and then turn by 36 degrees times by that digit.  So for example the 1 will lead to a right turn of 36 degrees and the 4 will lead to a right turn of 36 x 4 = 144 degrees.

Screen Shot 2022-02-04 at 12.20.25 PM

Next it would be nice to have more digits of pi to paste in rather than type.  So we can go to the onlinenumbertools website and generate as many digits of pi as we want.  Select them to be comma separated and also to not include the first digit 3.  You can then copy and paste this string in place of the 1,4,1 in the code above.

1000 digits of pi

Screen Shot 2022-02-04 at 12.08.50 PM

If we run this program after pasting the first 1000 digits of pi we get (after waiting a while!) the above picture. There are a number of questions that they then raise in the video – if this program was ran infinitely long would the whole screen eventually be black?  Would this create every possible image that can be created by 36 degree turns?  Would it be possible to send this picture (say to an alien civilization) and for the recipient to be able to reverse engineer the digits of pi?

2000 digits of pi

Screen Shot 2022-02-04 at 1.32.10 PM

If you increase the digits of pi to around 2000 you get the above picture.  The graph spends a large time in the central region before finally “escaping” to the left.  It then left my screen at the top.

3000 digits of pi

Screen Shot 2022-02-04 at 1.41.45 PM

We can see that the turtle “returned” from off the top of the screen and then joined back up with the central region.  This starts to look like a coastline – maybe the south of the UK!

Different bases: Base 3

Screen Shot 2022-02-04 at 12.32.36 PM

We can consider the digits of pi in base three – which means that they are all equivalent to 0,1,2.  This means that we can use these to specify either 0 degree, 120 degree or 240 degree turns.  We can change the code as shown above to achieve this.  Note the i%3 gives i mod 3.  For example if the digit is 8, then 8 mod 3 is 2 (the remainder when 8 is divided by 3) and so this would turn 120 x 2 = 240 degrees.

This then creates a pattern which looks similar to the Sierpinski triangle fractal design:

Screen Shot 2022-02-04 at 12.39.09 PM

Base 4

Using a similar method, we can create the following using a base 4 design:

Screen Shot 2022-02-04 at 12.49.03 PM

This creates what looks like a map layout.

Base 5:

Screen Shot 2022-02-04 at 1.13.58 PM

In base 5 the turtle quickly departed from my screen!  With turns of 72 we don’t see the tessellating shapes that we do with base 3 and 4.

Base 6:

Screen Shot 2022-02-04 at 1.26.12 PM

With a 60 degree turn we can now see a collection of equilateral triangles and hexagons.

You can explore with different numbers and different bases to see what patterns you can create!

Witness Numbers: Finding Primes

The Numberphile video above is an excellent introduction to primality tests – where we conduct a test to determine if a number is prime or not.  Finding and understanding about prime numbers is an integral part of number theory.  I’m going to go through some examples when we take the number 2 as our witness number.  We have a couple of tests that we conduct with 2 – and for all numbers less than 2047 if a number passes either test then we can guarantee that it is a prime number.

Miller-Rabin test using 2 as a witness number:

We choose an odd number, n >2. First we need to write it in the form:

Screen Shot 2021-12-22 at 3.41.49 PM

Then we have to conduct a maximum of 2 different tests:

Screen Shot 2021-12-22 at 4.08.17 PM

If either of the above are true then we have a prime number.

Testing whether n = 23 is prime.

First we need to write 23 in the following form:

Screen Shot 2021-12-22 at 3.46.40 PM

Next we need to check if the following is true:

Screen Shot 2021-12-22 at 3.46.57 PM

Remember that mod 23 simply means we look at the remainder when we divide by 23.  We can do this using Wolfram Alpha – but in this case let’s see how we could do this without a calculator:

Screen Shot 2021-12-22 at 3.47.02 PM

Therefore this passes the test – and we can say that it is prime.

Testing whether 1997 is prime

For 1997 we have:

Screen Shot 2021-12-22 at 3.51.44 PM

So we need to first test if the following is true:

Screen Shot 2021-12-22 at 3.51.49 PM

However using Wolfram Alpha we get:

Screen Shot 2021-12-22 at 3.51.56 PM

So this fails the first part of the test.

Trying the second part of the test, we need:

Screen Shot 2021-12-22 at 3.52.14 PM

We have already tested the case when r=0 (this gives the earlier result), so just need to look at what happens when r=1.  Again we use Wolfram Alpha to get:

Screen Shot 2021-12-22 at 3.52.24 PM

This passes the 2nd part of the test and so confirms that 1997 is prime.

What happens with 2047?

2047 is not prime as we can write it as 2 x 3 x 11 x 31.  However it is the first number for which the witness 2 gives a false positive (i.e we get a positive result even though it is not prime).  We write 2047 as:

Screen Shot 2021-12-22 at 3.59.14 PM

But we do indeed get:

Screen Shot 2021-12-22 at 3.59.19 PM

So we can call 2047 a pseudoprime – it passes this prime number test but is not actually prime.

Larger primes

For numbers larger than 2047 you can combine witnesses – for example if you use both 2 and 3 as your witness numbers (and regard a positive result as at least one of them returning a positive result) then this will find all primes for n < 1,373,653.

More interestingly for extremely large numbers you can use this test to provide a probability estimate for the likelihood that a number is prime.  Lots to explore here!

Screen Shot 2021-05-12 at 2.54.23 PM

Maths Games and Markov Chains

This post carries on from the previous one on Markov chains – be sure to read that first if this is a new topic.  The image above is of the Russian mathematician Andrey Markov [public domain picture from here] who was the first mathematician to work in this field (in the late 1800s).

Creating a maths gameScreen Shot 2021-05-13 at 6.20.00 AM

Above I have created a simple maths game – based on the simplified rules of Monopoly.  All players start at Go.  All players roll 2 dice and add the scores and move that number of squares forward (after square 9 you move to square 1 etc).  If you roll a double you get sent to Jail (square 9) – but are released on your next turn.  If you land on square 5 you immediately are transported to Go (and end your turn).  

The question is, if we play this game over the long run which famous mathematician will receive the most visits?  (In order we have Newton (2), Einstein (3), Euler (4), Gauss (6), Euclid (7), Riemann (8)).

Creating a Markov Chain

The first task is to work out the probabilities of landing on each square for someone who is starting on any square.  Using a sample space diagram you can work out the following:

p(move 2) = 0.  p(move 3) = 2/36.  p(move 4) = 2/36.  p(move 5) = 4/36.  p(move 6) = 4/36.  p(move 7) = 6/36.  p(move 8) = 4/36.  p(move 9) = 4/36.  p(move 10) = 2/36.  p(move 11) = 2/36. p(move 12) = 0.  p(double) = 6/36.

We can see that the only variation from the standard sample space is that we have separated the doubles – because they will move us to jail.  

Matrix representation

Screen Shot 2021-05-13 at 6.34.34 AM

I now need to create a 9×9 matrix which represents all the states of the game.  The first subscript denotes where a player starts and the second subscript denotes where a player finishes after 1 turn.  So for example m_13 denotes that a player will start on square 1 and finish on square 3, and p(m_13) is the probability that it will happen.  If we do some (rather tedious!) calculations we get the following matrix:

Screen Shot 2021-05-13 at 6.34.42 AM

We can note that the probability of ending up on square 5 is 0 because if you do land on it you are transported to Go.  Equally you can’t start on square 5 – so the probability of starting there and arriving somewhere else is also 0.  Also note that each row represents all possible states – so always adds up to 1.

Now all I need to do is raise this matrix to a large power.  If I raise this to the power 100 this will give me the long term probabilities of which square people will land on.  This will also give me a 9×9 matrix but I can focus on the first row which will tell me the long term probabilities of where people end up when starting at Go.  This gives:

Screen Shot 2021-05-13 at 6.34.51 AM

So I can see that the long term probabilities (to 3sf) show that Jail is going to be visited around 40% of the time, followed by Go (around 26.7% of the time).  And the mathematician that receives the most visits will be Euclid (around 16.8%).  We can logically see why this is true – if 40% of the time people are in Jail, then the next roll they are most likely to get a 7 which then takes them to this square.


Clearly we can then refine our game – we could in theory use this to model the real game of Monopoly (though this would be quite complicated!)  The benefit of Markov chains is that it is able to reduce complex rules and systems into a simple long term probability – which is hugely useful for making long term predictions.  

Screen Shot 2021-11-16 at 9.25.13 PM

New Paper 3s for Applications!

I’ve just finished making six Paper 3 practice papers for HL students sitting the Applications examination.   The Paper 3 pack is 41 pages and includes over 180 marks of questions and full typed up markscheme.  I’ve paid close attention to the IB’s provided examples for the course to make sure these look and feel very similar to how I would expect the papers to be in the summer. 

The six questions are:

Investigating Body Mass Index [30 marks]

The students carry out a statistical investigation to inform a decision on how to decrease BMI. The mathematics includes: regression lines, z tests, paired t-tests, 2 sample t-tests and Chi squared test for independence.

Life’s a Beach [32 marks]

The students carry out an investigation using Markov chains to investigate time spent on the beach. The mathematics includes: transition matrices, matrix operations, eigenvalues and eigenvectors and steady state calculations.

Avoiding a Magical barrier [33 marks]

The students explore a scenario where they must minimise their journey. The mathematics includes: forming equations, finding averages, differentiation using the chain rule, optimization, and graphing.

Who killed Mr. Potato? [32 marks]

Students explore a scenario where they must decide the time that a potato was first removed from an oven using Newton’s Law of Cooling. The mathematics includes: solving differential equations by separating variables, curve fitting, log regression, differentiation of exponentials, graphing to solve equations.

Hare vs. Lynx [32 marks]

Students explore a predator prey system to see what happens when population parameters are changed. The mathematics includes: understanding equilibrium and saddle points, finding eigenvalues, Euler’s method to approximate differential equations, sketching phase portraits, curve fitting a trigonometric model and graphical skills.

Rolling dice [32 marks]

Students conduct a dice rolling investigation which mimics radioactive decay. The mathematics includes: equations of linear regression, exponential regression, Chi squared goodness of fit, Euler’s method to approximate differential equations, solving differential equations by separating variables, percentage error.

You can purchase this Paper 3 exam pack below (you do not need a PayPal account, just click on the relevant credit card picture).

Paper 3 exam pack (Applications HL)

Six paper 3 investigations to help prepare for the summer exams. Please note this is not an automatic download but will be sent the same day.


Life on the Beach with Markov Chains

Markov chains are exceptionally useful tools for calculating probabilities – and are used in fields such as economics, biology, gambling, computing (such as Google’s search algorithm), marketing and many more.  They can be used when we have the probability of a future event dependent on a current event.  The image above is of the Russian mathematician Andrey Markov [public domain picture from here] who was the first mathematician to work in this field (in the late 1800s).

Beach life

The picture above is an example of a situation which can be modeled using a Markov chain.  We have two states:  Beach (state 1) and Home (state 2).  In our happy life we spend all the hours of the day in either one of these two states.  If we are on the beach then the probability we remain on the beach in one hour is 0.6 and the probability we go home in one hour is 0.4.  If we are at home the probability we remain at home in one hour is 0.8 and the probability we go to the beach is 0.2.  Hopefully you can see how this information is represented above.

Using matrices

First we need to represent our information in a matrix form.  A general 2×2 matrix is written as:

Where the subscript tells you the row and column (e.g. a_12 tells you it is in the first row and 2nd column).

For our Markov chain we define the following matrix:

Here m_11 is the situation of starting in state 1 and moving to state 1.  m_12 is the situation of starting in state 1 and moving to state 2.  Therefore p(m_12) is the probability of starting in state 1 and moving to state 2.  So for our beach  existence we have:

Screen Shot 2021-11-15 at 7.12.34 AM

The 0.6 shows that if we are already on the beach we have a 0.6 chance of still being on the beach in one hour.

Where will we be in the future?

The benefit of Markov chains is that they allow us to utilise computer power to now calculate where someone will be in the future – simply by taking the power of the matrix.  To find the probabilities after 2 hours I can square my matrix:

Using the rules of matrix multiplication this then gives:

Which we can the calculate as:

Screen Shot 2021-11-15 at 7.12.39 AM

I’ve used arrow notation here to represent the start and end state so p(m_1 arrow 1) means starting at 1 and ending at 1 after 2 hours.  We can see that for someone who started in the beach, the chance of them being on the beach in 2 hours is 0.44.  Equally the probability of someone who started in the house being on the beach in 2 hours is 0.28.

I can then carry on with matrix multiplication to work out where someone will likely be for any given number of hours in the future.  

p(m_1 arrow 1) means starting at 1 and ending at 1 after n hours.  So for example if I want to see where someone will be in 24 hours I simply do:

Screen Shot 2021-11-15 at 7.12.42 AM

We can see that now it doesn’t actually matter (to 3sf anyway) where someone started – if they started on the beach there is a 0.333 chance they are on the beach in 24 hours, if they started in the house there is also a 0.333 chance they are on the beach in 24 hours.  So I can conclude that as the number of hours increase towards infinity that the person in this scenario would spend 1/3 of their time on the beach and 2/3 of their time at home – not a bad life!

A more demanding beach life

We can see that things get much more complicated, even by adding an extra state.  Now we have 3 possible states, Beach (state 1), Home (state 2) and SCUBA (state 3).  This time we need a 3×3 matrix:

and as before we define our probability matrix as:

So from our diagram we have the following:

For example the 0.8 in row 2 column 2 shows that there is a 0.8 chance of starting in state 2 (Home) and ending in state 2 (Home) in one hour.

Then using our same notation we have:

Which shows that after 2 hours there is (for example) a 0.19 chance that someone who started in state 2 (Home) is now found in state 1 (Beach).

After 24 hours we have the following matrix:

So we notice the same situation as last time – as the number of hours increase it gets less important where we started from – we can see that to 3sf it doesn’t now matter where we started – the probability after 24 hours of being found on the beach is 0.407, the probability of being found at home is 0.333 and the probability of being found diving is 0.260.

Hopefully this is a quick example to demonstrate the power of Markov chains in working with probabilities.  There is a lot more to explore (maybe in another post!)

My colleague has just made a fantastic set of video tutorials for the SL Applications syllabus.  So far he’s made over 60 videos – with more to come!  I really like the on screen use of the GDC and clear examples given.  Very useful for Applications students.

Playlist 1 (Number and Algebra)

Playlist 2 (Functions)

Playlist 3 (Geometry and Trigonometry)

Playlist 4 (Statistics and Probability)

Spotting fake data with Benford’s Law

In the current digital age it’s never been easier to fake data – and so it’s never been more important to have tools to detect data that has been faked.  Benford’s Law is an extremely useful way of testing data – because when people fake data they tend to do so in a predictable way.  Benford’s Law looks at the probability that a number in certain data set (many measurements, street address, stock prices etc.) begins with a given number (its leading digit).  Whilst we might expect the leading digits (d) would be equally likely occur, in reality they follow the following equation:

Screen Shot 2021-10-06 at 6.45.30 AM

So for example we can see that a leading digit of 1 is much more likely than a leading digit of a 9:

Screen Shot 2021-10-06 at 6.47.32 AM

Testing some data

I wanted to test some data to see if it did indeed follow Benford’s Law.  So, I downloaded an Excel file with 531 data points from the CDC website.  This gave the moving 7-day average Covid cases per 100,000 people for every day from 12th March 2020 to 3rd October 2021.   I then used the nice Excel techniques shown above in the video to manipulate the data into a useful form.  Once this had been done I could then use Desmos to plot this data (dot plot and left aligned frequency histogram).  You can see this data below:

Screen Shot 2021-10-06 at 6.36.52 AM

The red curve is the continuous (rather than discrete) curve created by working out the expected frequencies for each digit.  On Desmos I generated this by the following equation:

Screen Shot 2021-10-06 at 7.24.14 AM

We can see that our data largely follows our expected curve – so we would not have any evidence to suggest faked data!  We could conduct a Chi-Squared test to measure the goodness of fit of our data (this is also explained in the video).


This is a simple but effective method to test for faked data – if data fails this test it doesn’t necessarily mean it was faked (eg. data on heights of men in cm will clearly have nearly all 1s as leading digits!) but most non-random real life data measurements do follow this rule.  Try to find your own data (try to do this with a large data set) and try for yourself.


Screen Shot 2020-07-25 at 12.22.54 PM

If you are a teacher then please also visit my new site: for over 2000+ pdf pages of resources for teaching IB maths!

Weaving a Spider Web II: Catching mosquitoes

First I thought I would have another go at making a spider web pattern – this time using Geogebra.  I’m going to use polar coordinates and the idea of complex numbers to help this time.

Parametrically I will define my dots on my web by:

Screen Shot 2020-07-25 at 12.24.37 PM

Here r will dictate the distance of the dot from the origin, p will dictate how many dots I will have before I return to the starting point, and then I will vary n from 1 to p.

For example, if I have a distance of 1 from the origin then r = 1.  I decide to have 10 dots in one cycle, therefore p =10.  This gives the following:

Screen Shot 2020-07-25 at 12.24.47 PM

Now if I plot all these points as n varies from 1 to 10 I will get the following graph:

Screen Shot 2020-07-25 at 12.29.34 PM

Here I joined up all the dots to their neighbors and also to the origin.  If you know about complex numbers you might notice that we can represent these points as complex numbers, and these are the 10th roots of unity.

Screen Shot 2020-07-25 at 12.24.51 PM

Following the same method I now change the distance from the origin (so r is changed).  This then will give me the following web:

Screen Shot 2020-07-25 at 12.33.00 PM

Finding the optimum web design

I’m now going to explore some maths suggested by the excellent Chalkdust magazine (recommended for some great exploration ideas).  In their “Spider Witch Project” they suggest the following idea to work out how a spider can make sure they catch their prey.

We start with lots of assumptions and simplifications.

Screen Shot 2020-07-25 at 9.44.36 PM

Say we have the web above, distances in cm.  Let’s say that the inner green circle is no use for catching flies (this is where the spider wants to stay, and so flies will avoid this area).  So excluding this circle we have 2 additional concentric circle-like rings, and 10 radial lines from the centre.  This gives us a total of 20 areas (like the one shaded red).

Changing to concentric circles 

Screen Shot 2020-07-25 at 9.44.47 PM

Now let’s change our web into perfect circles.  We still have 20 areas in which the spider aims to catch their prey.  Let’s say that a spider will only catch their prey if the area it flies into is such that it is caught from all sides (i.e if the area is too large it may fly through the middle, or simply touch one strand but be able to escape).

For this particular design – with 2 concentric circles outside the centre area, the question is how many radial lines through the centre should the spider spin?  If it spins too few radial lines then its prey will not be caught, but if it spins too many then it will be wasting precious time (and energy) spinning its web.

Next lets work out the average of one of these red areas (in cm squared).  This will be:

Screen Shot 2020-07-26 at 7.44.06 AM

Next let’s assume that our spider wants to catch a mosquito.  Let’s say the mosquito is 3mm by 4mm with a 2D plan cross sectional area of 12 mm squared.  And let’s say that the mosquito will not be caught in the web unless the area of the red area is the same size or smaller than the mosquito’s 2D plan cross sectional area.  In this case we can see that the mosquito will escape:

Screen Shot 2020-07-26 at 7.57.50 AM

So, let’s see how many radial lines the spider needs to spin if it only has 2 concentric rings outside the “green zone”.  Here n will represent the number of radial lines from the centre:

Screen Shot 2020-07-26 at 7.57.56 AM

So, we can see that a spider wanting to catch a mosquito might need to make at least 105 radial lines to catch its prey.  This doesn’t seem to realistic.  So, let’s modify our model to see how this compares to real life.

Real life

Screen Shot 2020-07-26 at 8.09.42 AM

This particular spiderweb has around 20 concentric circles (counting double strands) and around 38 radial lines.  Let’s see how many radial lines we would predict from our model.

If we have a radius of around 6cm for this web (around the average for a spider web), and take an inner radius of 1cm for simplicity, then with 20 concentric circles we would predict:

Screen Shot 2020-07-26 at 9.04.02 AM

So a spider would need at least 46 radial lines to catch their prey.  This is not too far away from the real life case in this case of 38 radial lines.

Further study

This could make a very interesting exploration.  You can get some more ideas on this by reading the Chalkdust article where they go into ideas of optimisation for the time taken.

This topic shows how a good investigation should progress.  Start with a very simple case, make lots of assumptions, then see what happens.  If you reach a conclusion then go back and try to make your initial case more complicated, or revisit your assumptions to see how realistic they were.

Essential Resources for IB Teachers


Screen Shot 2021-08-21 at 1.07.49 PM

If you are a teacher then please also visit my new site.  This has been designed specifically for teachers of mathematics at international schools.  The content now includes over 2000 pages of pdf content for the entire SL and HL Analysis syllabus and also the SL Applications syllabus.  Some of the content includes:

  1. Original pdf worksheets (with full worked solutions) designed to cover all the syllabus topics.  These make great homework sheets or in class worksheets – and are each designed to last between 40 minutes and 1 hour.
  2. Original Paper 3 investigations (with full worked solutions) to develop investigative techniques and support both the exploration and the Paper 3 examination.
  3. Over 150 pages of Coursework Guides to introduce students to the essentials behind getting an excellent mark on their exploration coursework.
  4. A large number of enrichment activities such as treasure hunts, quizzes, investigations, Desmos explorations, Python coding and more – to engage IB learners in the course.

There is also a lot more.  I think this could save teachers 200+ hours of preparation time in delivering an IB maths course – so it should be well worth exploring!

Essential Resources for both IB teachers and IB students

1) Exploration Guides and Paper 3 Resources

Screen Shot 2021-12-01 at 1.19.14 PM

I’ve put together a 168 page Super Exploration Guide to talk students and teachers through all aspects of producing an excellent coursework submission.  Students always make the same mistakes when doing their coursework – get the inside track from an IB moderator!  I have also made Paper 3 packs for HL Analysis and also Applications students to help prepare for their Paper 3 exams.  The Exploration Guides can be downloaded here and the Paper 3 Questions can be downloaded here.

Website Stats



All content on this site has been written by Andrew Chambers (MSc. Mathematics, IB Mathematics Examiner).

New website for International teachers

I’ve just launched a brand new maths site for international schools – over 2000 pdf pages of resources to support IB teachers.  If you are an IB teacher this could save you 200+ hours of preparation time.

Explore here!

Free HL Paper 3 Questions

P3 investigation questions and fully typed mark scheme.  Packs for both Applications students and Analysis students.

Available to download here

IB Maths Super Exploration Guide

A Super Exploration Guide with 168 pages of essential advice from a current IB examiner to ensure you get great marks on your coursework.

Available to download here.

Recent Posts

Follow IB Maths Resources from Intermathematics on