Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Problem 1959. German tank problem

The 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).


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?


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

Problem Group

Solution Statistics

22 correct solutions 64 incorrect solutions
Last solution submitted on Sep 29, 2014

Problem Comments

Solution Comments