I am sure all of you have encountered CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) tests before. CAPTCHA tests are generated by computers, but computers should not be able to solve them: therefore, one can tell Human users from computers apart.
A few weeks ago, Yaroslav Bulatov wrote a post about a Russian CAPTCHA that he encountered at the Электронная библиотека Физтеха (if there’s any Russian reading this, would you please be so kind to translate?). Here’s a screenshot:
Quite humorous indeed. I suppose this test is meant to tell physicists and electrical engineers from the others (computers, and humans who are not physicists nor EE’s).
Tags: Brain Teasers, CAPTCHA

January 25, 2008 at 1:10 pm |
It’s e-library of MIPT, Moscow Institute of Physics and Technology, university I graduated from :), so test is some crazy equivalent of on-campus access restriction.
January 25, 2008 at 1:25 pm |
Vladimir,
Thanks for the elucidation! I had assumed that the “M” in “MIPT” stood for “Moscow”, but I had no idea what the “I”, “P” not “T” meant. If I remember right, in Russian “Moscow” is “Москва”, so the cyrillic alphabet should not trick me here, eh eh eh ;-)
January 25, 2008 at 1:28 pm |
Holy Kirchhoff!
That’s from MIPT for sure! :)
January 25, 2008 at 1:30 pm |
In Russian it’s “МФТИ”, “Московский физико-технический институт” [Moskovsky fiziko-tekhnicheskiy institut], literally Moscow physical-technical institute.
January 25, 2008 at 1:32 pm |
Vladimir Z,
Thanks for the translation. I must say that I appreciate MIPT’s sense of humor :-)
January 25, 2008 at 1:32 pm |
and, sorry for flooding, MIPT is most commonly referred to as simply “ФизТех” (“PhysTech”)
January 25, 2008 at 1:36 pm |
Vladimir Z,
Thanks. No worries about flooding! There’s plenty of room at the server now that WordPress gives three gigabytes of storage space for free ;-)
January 25, 2008 at 10:55 pm |
Guys,
Seriously now: has anyone solved the CAPTCHA depicted above? I tried the long, hard way using Kirchhoff’s circuit laws, and I tried the quicker way using the Y-Δ transform. I don’t get consistent results, though. If anyone has solved it, please let me know so we can compare solutions :-)
January 26, 2008 at 4:38 pm |
Fewf, it was really tough. I tried solving it in the general case, here is an illustration so you can get the designations:
http://www.box.net/shared/5to9xaow08
The answer is (numerator and denominator split by “—-”):
(n2+n4)*(n1*y+n5*x)+(n1+n2)*n4*x
——————————————–
(n1+n2)*y
, where:
x = n3*n2-n1*n4
y = (n1+n2)*(n3+n4)+(n1+n2+n3+n4)*n5
I’ll post the complete solution later as a trackback from my blog
PS Note that you don’t have to reduce the resulting fraction in this captcha, e.g. if 5/20 is the answer, you can enter 5/20, 1/4, 10/40 etc.
PPS A question of ethics, do you think I have the right to disclose the answer?
January 26, 2008 at 10:27 pm |
[...] a discussion in Reasonable Deviations, I spend some three hours solving a (quoting) “little school-level [...]
January 27, 2008 at 3:47 am |
I also ended up sidetracking for more than a few hours because of this problem, mostly because of stumbling onto some fascinating connections of resistor networks to other field of math, a few papers at http://www.citeulike.org/user/yaroslavvb/tag/resistance
The lazy approach to solve this is to use a general formula for 2-point resistance between nodes in an arbitrary graph, see second formula on page 7 of http://arxiv.org/abs/math-ph/0402038 and recognize that the limiting definition of g is equivalent to Penrose-Moore pseudo-inverse
Function resmat (Mathematica) below generates the matrix of effective resistances from a matrix of edge-wise resistances
lapl[m_] := DiagonalMatrix[Array[1 &, Length[m]].m] – m;
resmat[m_] := Module[{n = Length[m]},
g = PseudoInverse[lapl[m /. {x_?Positive -> 1/x}]];
Table[g[[i, i]] + g[[j, j]] – g[[i, j]] – g[[j, i]], {i, 1, n}, {j,
1, n}]
];
To get an answer for the problem above you do
resmat[{{0, 1, 3, 0}, {1, 0, 6, 2}, {3, 6, 0, 3}, {0, 2, 3, 0}}][[1, 4]]
to get 147/74
I’m curious, could this approach be adapted to work in Matlab? (ie, how would you get an exact fraction?)
January 29, 2008 at 1:03 am |
Here’s an outline of 8 ways you can solve this problem, feel free to suggest any I missed
January 31, 2008 at 2:06 am |
BTW, going over his section on solving for current in previous link, it seems needlessly complicated…I don’t think you need Kirchhoff’s voltage law for a unique solution. If you just use Kirchhoff’s current law + Ohm’s law, then you get voltages for 1 Amp current as the solution of L.x={1,-1,0,0,…} where L is graph Laplacian