Russian CAPTCHA

By Rod Carvalho

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: ,

13 Responses to “Russian CAPTCHA”

  1. Vladimir Nesov Says:

    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.

  2. rod. Says:

    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 ;-)

  3. Vladimir Zakharov Says:

    Holy Kirchhoff!

    That’s from MIPT for sure! :)

  4. Vladimir Zakharov Says:

    In Russian it’s “МФТИ”, “Московский физико-технический институт” [Moskovsky fiziko-tekhnicheskiy institut], literally Moscow physical-technical institute.

  5. rod. Says:

    Vladimir Z,

    Thanks for the translation. I must say that I appreciate MIPT’s sense of humor :-)

  6. Vladimir Zakharov Says:

    and, sorry for flooding, MIPT is most commonly referred to as simply “ФизТех” (“PhysTech”)

  7. rod. Says:

    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 ;-)

  8. rod. Says:

    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 :-)

  9. Vladimir Zakharov Says:

    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?

  10. Захаров.Blog Says:

    [...] a discussion in Reasonable Deviations, I spend some three hours solving a (quoting) “little school-level [...]

  11. Yaroslav Bulatov Says:

    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?)

  12. Yaroslav Bulatov Says:

    Here’s an outline of 8 ways you can solve this problem, feel free to suggest any I missed

  13. Yaroslav Bulatov Says:

    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

Leave a Reply