In A Discipline of Programming, Dijkstra wrote:

Two circumstances have changed the scene since then.* The one is the insight that, even in the case of fully deterministic machines, program testing is hardly helpful. As I have now said many times and written in many places: program testing can be quite effective for showing the presence of bugs, but is hopelessly inadequate for showing their absence. The other one is the discovery that in the meantime it has emerged that any design discipline must do justice to the fact that the design of a mechanism that is to have a purpose must be a goal-directed activity. In our special case it means that we can expect our post-condition to be the starting point of our design considerations. In a sense we shall be "working backwards".

*[i.e., since the time of irreproducibility/indeterminism (real bugs!) in computation]

A Monte Carlo algorithm is only partially "a goal-directed activity": We know very little about how the algorithmic form of the pseudorandom number generator relates to the ultimate goal of the Monte Carlo algorithm.
(which, for example, might be computing the area of a circle)

Thus, it would seem Dijkstra would be opposed to Monte Carlo algorithms, either for problem-solving or for testing, because it is unclear what the algorithmic form of a random number generator has to do with what Monte Carlo tasks are designed to accomplish.

  • 1
    $\begingroup$ This is perhaps more relevant at history of science and mathematics $\endgroup$
    – vonbrand
    Mar 20, 2016 at 23:52
  • $\begingroup$ @vonbrand Yes, perhaps $\endgroup$
    – Geremia
    Mar 21, 2016 at 16:28
  • $\begingroup$ @DavidRicherby Does my added explanation help? $\endgroup$
    – Geremia
    Mar 21, 2016 at 16:48
  • $\begingroup$ @Geremia It does, yes. I'm not sure I agree that MC algorithms aren't "goal-directed" but I understand the question, now. $\endgroup$ Mar 21, 2016 at 17:25
  • $\begingroup$ @DavidRicherby MC algorithms are goal-directed, but in a weaker sense, it seems. It seems Dijkstra would think that MC algorithms are the least ideal, since the connection between the algorithm and the goal isn't as clearer. $\endgroup$
    – Geremia
    Mar 21, 2016 at 18:48


Browse other questions tagged or ask your own question.