CATEGORY: Knuth: Blunder (Thinking the right thing but doing it wrong) REFERENCE: https://www.tug.org/TUGboat/tb10-4/tb26knut.pdf EXPLANATION: As a matter of fact, every point that is within the circle (Ac) is also within the square (As). Hoever, the code, as it stands, increments 'in_square_count' only if a point is located outside the circle. CONSEQUENCES: 'in_square_count' is incremented too few times and consequently, the computed value of PI is too big (around 14.6), refer to REMARKS section below. BUGFIX: Since every random point must be within the square, update variable 'in_square_count' with every loop iteration: if (is_in_circle(x, y)) { ++in_circle_count; } ++in_square_count; REMARKS: What value does 'monte_carlo_pi' really return? Because 'in_square_count' is updated (wrongly) only if a point is located outside the circle (within the area between the circle and the square), instead of 4 Ac/As, 4 Ac/(As-Ac) is computed: 4 Ac/(As - Ac) = 4 (r^2 * PI)/((2 * r)^2 - r^2 * PI) = 4 PI / (4 - PI) = 14.639...