The brainbuster
Find the solution to this brainbuster and win £200 of Amazon vouchers to spend on high-tech!
Umar, Fiona, Mateo and Krista are each deploying their software in the cloud on a different one of the Kali, Mint, Fedora and Ubuntu distros. They’re also installing either Python, F#, Fortran or Kotlin and they all chose a different language.
You’re working in tech support at the cloud provider. It’s after hours. The datacentre has some “technical issues” – engineers are putting out fires – and so deployments are queued. You’ll be keeping an eye on them. Doing a back of the envelope calculation, you realise you need to contact the last person in the queue, to tell them their deployment will take a while!
However your queue monitoring software is also glitching. It’s only giving you partial information, so you have to piece together what’s going on.
You can see Mateo’s deployment will come right after whomever ordered the deployment of Python on Kali.
The Ubuntu deployment is happening first.
The last two deployments won’t be Fortran.
The developer running Mint won’t be up and running until after the developer running Kotlin on Fedora.
No-one is deploying an OS or language with the same initial as their name.
Who gets the bad news?
Bonus points for working out the full deployment queue: which person gets which OS and language, and in what order.
Show your workings. Only complete entry forms will be considered. A single prize will be awarded, for the best entry. The judge's decision is final.
This competition closed on Wednesday 19th April 2023.
The entries
There were a good number of entries to this competition. This time all entrants achieved the correct answer, and we saw a number of elegant and innovative approaches: these ranged from logical reasoning, algebraic methods, through to some concise software solutions to permute through possible answers, and even a Monte Carlo solution. Thanks to all entrants for participating.
The solution
One solution as provided by our winner was:
Firstly we need to work out which comes last. It cannot be X on Ubuntu running Y because we know the Ubuntu deployment comes first. It can't be Kotlin on Fedora, as we know X on Mint running Y comes after. It can't be Python on Kali, as we know Mateo comes after this. This means that it must be X on Mint running something. That something must be F# - we know that Kotlin and Fedora are together, as are Python and Kali, and Fortran can't be last. So the last entry must be Mint running F#. This also implies that the first one is Ubuntu running Fortran.
Someone Ubuntu Fortran
Someone Some OS Some Language
Someone Some OS Some Language
Someone Mint F#
We know that Mateo comes after Python on Kali, but Mateo can't be last because his first initial clashes with Mint. Therefore, Mateo must be third, which means Python on Kali must be second. This means Mateo must have the remaining OS/Language, Kotlin on Fedora.
Someone Ubuntu Fortran
Someone Kali Python
Mateo Fedora Kotlin
Someone Mint F#
Finally, we just need to allocate users. We have users Umar, Fiona, Mateo, and Krista. The first user (Ubuntu Fortran) cannot be Umar or Fiona due to their names, and cannot be Mateo as they are third. It must therefore by Krista. The final user (Mint F#) cannot be Mateo or Fiona due to names, nor can it be Krista - so this must therefore be Umar. Only Fiona is left, and therefore they go with Kali and Python.
Krista running Ubuntu with Fortran
Fiona running Kali with Python
Mateo running Fedora with Kotlin
Umar running Mint with F#
So Umar gets the bad news.
And the winner is...
Ben Tatman, studying for a PhD in nuclear magnetic resonance at the University of Warwick, is the winner of ECM's Brainbuster no. 46 competition...
...winning £200 of Amazon vouchers to spend on high-tech. Congratulations again to our winner, and watch out for ecm's next brainbuster!