Hacker News new | ask | show | jobs
by GoogleMeElmo 5616 days ago
The first one is a knapsack problem: http://en.wikipedia.org/wiki/Knapsack_problem

The third on is Zero-sum problem: http://en.wikipedia.org/wiki/Zero-sum

Nor sure about the second one. Anyone who knows?

4 comments

The second problem seems open-ended and a test of UX/creativity skills: "There is no objectively 'right' answer here, and in fact there may be multiple ways to interpret a provided list of file events."

The third problem is not zero-sum, it's subset-sum: http://en.wikipedia.org/wiki/Subset_sum

I never understood the value of these simplified competitions. If your goal is to test implementations of approximation algorithms, then at least make the conditions realistic, like the Netflix prize.

While you might think of these sorts of problems as simplified, they really do work well to filter out the sort of programmers you definitely don't want to hire.

And for many programmers you might want, its a simple enough problem that it isn't very time-consuming for them.

I think the Netflix prize is a pretty bad comparison since it fueled years of active research from top machine learning and data mining people. It's great work, but if you're trying to find new hires the time scale is quite a ways off.
On the contrary, within a few days of the Netflix prize challenge being launched, a guy put up a detailed blog post with a simple linear algebra method that could beat Netflix's system at the time (link below). It didn't come anywhere near the 10% improvement threshold, but it beat Netflix's system with a handful of lines of C code, and it ran off his laptop. Sounds like he would have made an excellent hire.

http://sifter.org/~simon/journal/20061211.html

Haha, I stand very well corrected!
>"The third problem is not zero-sum, it's subset-sum: http://en.wikipedia.org/wiki/Subset_sum

That is correct. I have messed the names up :P

These simplified competitions seem to filter for applicants who can recognize the canonical problems like knapsack/zero-sum/etc. and then successfully implement them.
First one is not knapsack problem (which is about packing largest possible value into available "capacity" without regard to actual geometry of considered objects), but one variant of packing problems.
Second one isn't a traditional algorithms problem, as the "correct" result is subjective.
I think you are killing the point with this answers.
Naming problem you are trying to solve does not always solve it. Even more so for problems where common belief is that only way to solve them is essentially brute-force and what counts are various tricks in the actual implementation of solution.