fork download
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8. // srand(time(0));
  9.  
  10. const unsigned trials = 100;
  11. unsigned solutionsFound = 0;
  12.  
  13. for (unsigned i = 0; i < trials; ++i)
  14. {
  15. const unsigned size = 101;
  16.  
  17. int row[size];
  18. int col[size];
  19.  
  20. row[0] = 3;
  21. col[0] = 2;
  22.  
  23. for (unsigned j = 1; j < size; ++j)
  24. {
  25. row[j] = row[j - 1];
  26. col[j] = col[j - 1];
  27.  
  28. switch (rand() % 4)
  29. {
  30. case 0: ++row[j]; break;
  31. case 1: ++col[j]; break;
  32. case 2: --row[j]; break;
  33. case 3: --col[j]; break;
  34. }
  35.  
  36. if (row[j] == 3 && col[j] == 9)
  37. {
  38. ++solutionsFound;
  39.  
  40. for (unsigned k = 0; k < j + 1; ++k)
  41. {
  42. cout << '(' << row[k] << ',' << col[k] << ") ";
  43.  
  44. if ((k + 1) % 12 == 0 || k == j)
  45. cout << '\n';
  46. }
  47. cout << endl;
  48. break;
  49. }
  50. }
  51. }
  52.  
  53. cout << "Escapes: " << (solutionsFound * 100.0 / trials) << "%\n";
  54. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
(3,2) (3,1) (2,1) (1,1) (0,1) (0,0) (0,1) (0,2) (-1,2) (-1,3) (0,3) (1,3) 
(2,3) (2,4) (3,4) (2,4) (2,5) (2,6) (2,7) (3,7) (3,6) (4,6) (4,7) (4,6) 
(4,7) (4,8) (4,7) (4,8) (4,7) (4,8) (4,7) (4,6) (5,6) (5,7) (5,8) (4,8) 
(4,9) (3,9) 

(3,2) (2,2) (3,2) (2,2) (3,2) (4,2) (3,2) (3,3) (4,3) (4,4) (3,4) (4,4) 
(5,4) (6,4) (7,4) (6,4) (6,5) (6,6) (5,6) (5,5) (6,5) (5,5) (4,5) (4,6) 
(3,6) (2,6) (3,6) (2,6) (2,7) (2,8) (2,7) (3,7) (4,7) (4,6) (3,6) (4,6) 
(4,5) (4,6) (4,7) (5,7) (4,7) (4,6) (5,6) (4,6) (4,5) (5,5) (5,6) (5,7) 
(5,8) (5,7) (6,7) (6,8) (6,9) (5,9) (4,9) (4,8) (5,8) (4,8) (3,8) (2,8) 
(3,8) (3,9) 

(3,2) (3,3) (3,2) (4,2) (3,2) (3,3) (2,3) (2,2) (3,2) (2,2) (2,1) (2,2) 
(1,2) (1,3) (0,3) (-1,3) (-1,2) (-2,2) (-1,2) (0,2) (1,2) (2,2) (2,3) (3,3) 
(3,2) (3,3) (2,3) (3,3) (4,3) (3,3) (3,2) (3,3) (4,3) (3,3) (3,4) (2,4) 
(2,3) (3,3) (3,4) (3,3) (2,3) (2,4) (2,5) (3,5) (2,5) (2,4) (1,4) (1,5) 
(1,6) (1,5) (0,5) (0,6) (0,5) (0,4) (0,5) (-1,5) (0,5) (0,4) (-1,4) (0,4) 
(-1,4) (-1,5) (-1,6) (-2,6) (-1,6) (-1,5) (0,5) (0,4) (0,3) (0,4) (0,3) (0,4) 
(-1,4) (0,4) (0,5) (0,6) (0,5) (1,5) (0,5) (1,5) (1,4) (2,4) (2,5) (1,5) 
(2,5) (1,5) (2,5) (3,5) (3,6) (2,6) (2,7) (2,6) (3,6) (2,6) (2,7) (3,7) 
(3,8) (3,9) 

(3,2) (3,3) (4,3) (4,4) (5,4) (5,5) (5,6) (4,6) (5,6) (5,5) (5,6) (5,5) 
(5,6) (4,6) (4,7) (3,7) (4,7) (4,8) (4,9) (5,9) (6,9) (6,8) (5,8) (6,8) 
(6,9) (5,9) (4,9) (4,10) (4,9) (3,9) 

(3,2) (3,3) (2,3) (2,2) (2,3) (2,4) (1,4) (2,4) (1,4) (2,4) (2,5) (1,5) 
(2,5) (3,5) (2,5) (2,4) (1,4) (0,4) (1,4) (1,5) (1,6) (0,6) (1,6) (1,7) 
(2,7) (1,7) (2,7) (1,7) (1,8) (0,8) (0,9) (0,10) (0,9) (1,9) (2,9) (3,9) 

Escapes: 5%