# Uniqueness of Rasperry Pi Serial Numbers

My SID project needs the user to type in the last 4 digits of a PI’s serial num in order to connect remotely.

I chose 4 as I thought (intuitively) that it was enough digits to almost certainly be unique in a class of 15 Pi.

Of course,  if it takes one year 7 child x attempts in t time to get it right then imagine the number of attempts a class of 30 children working in “teams”  of two takes to do this.  then make it 2 digits – then 3 – then 4.

…….. so 30 mins later, all pupils have connected their laptops to their Pi 🙂

OK – lets try and me more scientific and find the probability of 1/2/3 or 4 digits letting us uniquely identify a Pi.

Turns outs to be one of those great maths problems called the “birthday problem” and that the probability of any 2 Pi out of 15 having same last digits of serial number is (in %) where r = num of Pi and d = number of hex digits is given by

a = (16^d)!
b = (16^d)^r)
c = ((16^d)-r)!

P(%) = 100*(1 – a/(b * c)

Substituting r = 15 and d =2 gives 34%

Substituting r = 15 and d =3 gives 2.5%

Substituting r = 15 and d = 4 gives 0.2%

So maybe we could get away with 3 digits but with say 30 Pi the numbers change to

Substituting r = 30 and d = 3 gives 10%

Substituting r = 30 and d = 4 gives 0.7%

So in a class of 30 you’d have to use 4 digits and so for compatibility for rich schools  – I’ve stuck with 4 digits 🙂

Just for an exercise, I wondered if I converted the serial num into Base 30 (using 0,1,2….x,y,z) for digits I get this

Substituting r =15 and d =2 gives 11%

Substituting r =15 and d =3 gives 0.4%

and even for a class of 30

Substituting r =30 and d =2 gives 38%

Substituting r =30 and d =3 gives 1.6%

So I’d say we could get away with three Base 30 digits.

But since its a lot of trouble to convetr from Base 16 to Base 30, I’m going to stick with 4 hex digits and stick them on the side of each Pi 🙂