fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. // your code goes here
  13. int stack1 = 100;
  14. int stack2 = 100;
  15. int gain1 = 0;
  16. int gain2 = 0;
  17. int cmpt = 0;
  18. int total = 0;
  19. int occ = 100000;
  20. int moy = 0;
  21.  
  22. for (int c=0 ; c<occ ; c++)
  23. {
  24. while ((gain1 < 4000) && (gain2 < 4000))
  25. {
  26. // Tant que personne n'a ship 40 caves
  27. cmpt++;
  28.  
  29. Random rn = new Random();
  30. int i = rn.nextInt()%2;
  31. if(i==0)
  32. {
  33. if(stack2 <= stack1) {
  34. gain1 += stack2;
  35. gain2 -= stack2;
  36. stack1 += stack2;
  37. stack2 = 100;
  38. }
  39. else {
  40. gain1 += stack1;
  41. gain2 -= stack1;
  42. stack2 -= stack1;
  43. stack1 = stack1 * 2;
  44. if(stack2 < 100) stack2 = 100;
  45. }
  46.  
  47. //System.out.println("joueur 1 gagne le flip. Stack1 = " + stack1 + " & stack2 = " + stack2 + " & gain1 = " + gain1 + " & gain2 = " + gain2);
  48. }
  49. else
  50. {
  51. if(stack1 <= stack2) {
  52. gain2 += stack1;
  53. gain1 -= stack1;
  54. stack2 += stack1;
  55. stack1 = 100;
  56. }
  57. else {
  58. gain1 -= stack2;
  59. gain2 += stack2;
  60. stack1 -= stack2;
  61. stack2 = stack2 * 2;
  62. if(stack1 < 100) stack1 = 100;
  63. }
  64.  
  65. //System.out.println("joueur 2 gagne le flip. Stack1 = " + stack1 + " & stack2 = " + stack2 + "& gain1 = " + gain1 + " & gain2 = " + gain2);
  66. }
  67. }
  68. //System.out.println("Objectif atteint en " + cmpt + "mains (stack1 = " + stack1 + " et stack2 = " + stack2 + ")");
  69. total += cmpt;
  70. stack1 = 100;
  71. stack2 = 100;
  72. gain1 = 0;
  73. gain2 = 0;
  74. cmpt = 0;
  75. }
  76. moy = total / occ;
  77. System.out.println("Sur " + occ + " occurences, le nombre de flips nécessaires fut en moyenne de " + moy + " pour que l'un des joueurs atteigne 40 caves");
  78. }
  79. }
Success #stdin #stdout 0.56s 320768KB
stdin
Standard input is empty
stdout
Sur 50000 occurences, le nombre de flips nécessaires fut en moyenne de 24 pour que l'un des joueurs atteigne 40 caves