Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #include<iostream>
  2. #include <random>
  3.  
  4. int uniform_random(int min,int max)
  5. {
  6. static std::mt19937 prng(std::random_device{}());
  7. return std::uniform_int_distribution<>(min,max)(prng);
  8. }
  9. int abs(int number)
  10. {
  11. if(number<0)
  12. number *=-1;
  13. return number;
  14. }
  15. int stepen(int a, int n)
  16. {
  17. int ret(1);
  18. for(int i(0);i<n;i++)
  19. ret *=a;
  20. return ret;
  21. }
  22.  
  23. int Dogadka(int input[],int log[],int N,int R)
  24. {
  25. int situation(0);
  26. int sign;
  27.  
  28. for( int i(1);i<N+1;i++)
  29.  
  30. situation +=stepen(((input[i])*2),(N+1-i));
  31. if (input[3]==1)
  32. sign =100;
  33. else
  34. sign =-100;
  35.  
  36. int flag(0);
  37.  
  38.  
  39. for(int j(0);j<R;j++)
  40. {
  41. if((abs(log[j]))%100 == situation)
  42. flag=j;
  43. }
  44. if (flag!=0)
  45. {
  46. if ((log[flag])/100>0)
  47. return 1;
  48. if ((log[flag])/100<0)
  49. return 0;
  50. if ((log[flag])/100==0)
  51. return uniform_random(0,1);
  52.  
  53.  
  54. }
  55. else
  56. {
  57. for (int i(R-1); i>0;i--)
  58. log[i]=log[i-1];
  59.  
  60.  
  61. log[1]=situation;
  62. log[2]+=sign;
  63.  
  64. }
  65.  
  66. }
  67.  
  68. int main()
  69. {
  70. const int R(33);
  71. const int Z(6);
  72. int log[R];
  73. int input[Z];
  74. int N;
  75. int k(0);
  76.  
  77. std::cout << "Enter N in [1;5] \n";
  78. if(!(std::cin >> N)||(N>5)||(N<1))
  79. return 0;
  80. std::cout <<"Enter 0 or 1 \n" ;
  81.  
  82. for (int i(0);(std::cin>>input[i])&&(input[i]<=1)&&(input[i]>=0);k++)
  83. {
  84. std::cout <<"Enter 0 or 1 \n";
  85.  
  86. for (int i(Z); i>0;i--)
  87. input[i]=input[i-1];
  88.  
  89. if (k<N)
  90. {
  91. if (input[1]!=uniform_random(0,1))
  92.  
  93. std::cout <<"You won! \n";
  94.  
  95. else
  96.  
  97. std::cout <<"You lose! \n";
  98.  
  99. }
  100. else
  101. {
  102. if (input[1] != Dogadka(input,log,N,R))
  103.  
  104. std::cout <<"You won! \n";
  105.  
  106. else
  107.  
  108. std::cout <<"You lose! \n";
  109.  
  110. }
  111.  
  112. }
  113.  
  114. return 0;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement