The parula colormap is named for the tropical parula. I’m planning to post more about the name later.

]]>One of the most important numbers in my career is the first eigenvalue of the L-shaped membrane, the MathWorks logo. You can find this value in the M-file membrane.m, in toolbox/matlab/general. If you use the first four digits as a phone number in “touchtone”, it will trigger the hidden message. — Cleve

]]>Basically a 1×5 vector ‘d’ is stored in the GUI (it represents the coefficients of a polynomial of degree 4). It is initially set to [0 0 0 0 ***** (edit --Cleve)].

Each time we dial a number, the vector is left-shifted, and the negated digit is appended at the right side (with ‘*’ and ‘#’ corresponding to 1 and -1), but with the rightmost number kept fixed (96397). The polynomial is then evaluted at x=10, and the resulting value is compared against either 7 or 2707. If it matches, a special sound message is played.

The question is how we do we get it to evaluate to one of those two values? The easiest solution is to exhaustively calculate all possible combination in a brute-force manner:

% 4-by-3 matrix of values corresponding to the key pad. % The set of possible values is hence -9,-8,...,-1,0,1 [k,j]=ndgrid(1:3); [-3*(k-1)-j ; 2-(1:3)] % all possible polynomials [d1,d2,d3,d4,d5] = ndgrid(-9:1, -9:1, -9:1, -9:1, 96397); D = [d1(:) d2(:) d3(:) d4(:) d5(:)]; clear d1 d2 d3 d4 d5 % evaluate all polynomials p = sum(bsxfun(@times, D, 10.^(4:-1:0)), 2); % find rows that evaluate to either 7 or 2707 >> D(p==7,:) >> D(p==2707,:)

Using the above code, it turns out there are 4 special 4-digit numbers that when dialled play the secret message:

% p == 7 % p == 2707 (sound played in reverse)

(I have edited Amro’s comment. –Cleve)

]]>— Cleve ]]>

Do I now call the number in y to claim my price? ]]>

`>> char(z.msg(32901:32960))`

ans =

Congratulations. You have solved one of the NCM puzzles.

]]>I’m sure it would have been possible to solve analytically for the proper combination of the indices; this is complicated by the conditional nature of the coefficient rules. I’m an engineer, however, not a mathematician (and it’s Labor Day), so I brute-forced it – not prohibitive, with only 11,880 possible sequences. The code to play the message backwards is **** (edited –Cleve). I won’t spoil the other one.

Unfortunately, a few half-hearted web searches weren’t enough to uncover the significance of the numbers, so I’ll leave it at that.

]]>