http://xkcd.com/356/

Als zijnde een nerd, kon ik het niet laten om de puzzle uit XKCD/356 op te lossen. Een puur analytische oplossing gaf ik al na een paar seconden op, dan maar een numerieke oplossing met behulp van m’n favorite tool zijnde Python/NumPy. De eerste versie, een na├»eve, eenvoudige iteratieve oplossing was, met wat bochten afsnijden, snel gemaakt. Oplossing was by the way ongeveer 0.77Ω.

Een half jaar later ruisde het liedje “Wat heb heb ik nu aan algebra nu ik voor de keuken sta” door m’n hoofd. Dat liedje lijkt na wat wat google-en niet te bestaan maar een fraai voorbeeld van een mondegreen. Toen dit lied een hit was, ergens begin jaren zeventig, bevatte mijn vocalbuaire waarschijnlijk al wel ‘keuken’ maar nog geen ‘keuze’. (liedje staat op YouTube ). Het woord ‘algebra’ bewoog me om de XKCD/356 puzzle nog eens beter oplossen met behulp van lineaire agebra in plaats van voorgaande methode. Enfin, het script verbouwd zodat het meeste werk door de functie numpy.linalg.solve wordt gedaan. Het resulterende script is beter, fraaier, korter, maar…. trager.

Dus als laatste maar eens grof geschut uit de kast gehaald: scipy.sparse.linalg.spsolve, iets meer gedoe, maar lightning fast vergeleken met voorgaande versies. Voor de liefhebber een linkje naar het laatste script.
xkcd356.png

Comments are closed.