MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply TodayThe German tank problem is a well-known statistical problem that attempts to estimate the maximum of a discrete distribution from a limited number of samples (you may know it from some of its far reaching implications...)

You do not know how many tanks are in circulation (let's call this number **N**), but you know that they have been assigned serial numbers sequentially starting at 1 (ranging from 1 to N). You manage to observe a random subset of **k** tanks, and find that, among the observed tanks, the maximum serial number is **n**. Your job is to predict **N**, the total number of tanks in circulation, from this observation alone (from the values of **k** and **n**).

**Example:**

You observe the serial number of 3 tanks, which are 36, 77, and 28. You know that there must be *at least* 77 tanks in circulation (although it seems unlikely that there were *only* 77). What is your best estimate of the total number of tanks in circulation?

**Details:**

Your function takes the values **n** and **k** and must return your best estimate of the value of **N**.

To pass this problem you must be **exactly correct** in at least 10% of the testsuite cases.

Test suite checks 10,000 cases, with N values ranging from 10 to 100, and k values ranging from 1 to 10.

**Hints:** (why my solution is not working?)

In a typical scenario you do not really care about being "exactly correct". This problem is intended to have you thinking about frequentist approaches, Bayesian, and maximum likelihood estimators

21 correct solutions
61 incorrect solutions

Last solution submitted on Jul 09, 2014

2 players like this problem

1 Comment

José Ramón Menzinger
on 29 Oct 2013

I only reach 8.5% :-(

1 Comment

Alfonso Nieto-Castanon
on 26 Oct 2013

Well done, sir (and on your first try! You are clearly paying attention to the details :)

1 Comment