Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1.  
  2. #include <time.h>
  3. #include <iostream>
  4. #include <stdlib.h>
  5. #include <math.h>
  6.  
  7. void wait(int miliseconds);
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12. int czas = clock();
  13. double entropia = 0.00;
  14. srand(time(NULL));
  15. int kostka[6000];
  16. int oczkaKostki[6] = { 0,0,0,0,0,0 };
  17. int losowanieKostki = 0;
  18. int losowanieOczka = 0;
  19. int liczbaKostek = 6000;
  20. for (int i = 0;i < 6000;i++) kostka[i] = 6;
  21. for (int i = 0; i < 100; i++) {
  22. cout << "\n\nProba " << i + 1 << "\n\n";
  23. for (int i = 0; i < 6000; i++)
  24. {
  25. losowanieKostki = rand() % 20; //prawdopodobienstwo przewrocenia kostki
  26. if (losowanieKostki == 1)
  27. {
  28. losowanieOczka = rand() % 6 + 1;
  29. kostka[i] = losowanieOczka;
  30. }
  31.  
  32. }
  33.  
  34. for (int j = 0; j < 6; j++)
  35. {
  36. oczkaKostki[j] = 0;
  37. }
  38.  
  39.  
  40. for (int i = 0; i < 6000; i++) {
  41. for (int j = 1; j < 7; j++)
  42. {
  43. if (kostka[i] == j)
  44. oczkaKostki[j - 1]++;
  45. }
  46. }
  47.  
  48. for (int j = 0; j < 6; j++)
  49. {
  50. cout << "Ilosc " << j + 1 << ": " << oczkaKostki[j] << "\n";
  51. }
  52.  
  53.  
  54. entropia = log(liczbaKostek) * (liczbaKostek + 1.0 / 2.0) - liczbaKostek + ((log(2) + log(3.1415)) / 2);
  55. for (int j = 0; j < 6; j++) {
  56. if (oczkaKostki[j] > 2) {
  57. entropia -= log(oczkaKostki[j]) * (oczkaKostki[j] + 1.0 / 2) + ((log(2) + log(3.1415)) / 2) - oczkaKostki[j];
  58. }
  59. }
  60. cout << "Entropia: " << entropia << endl;
  61. wait(50);
  62. }
  63. cout << "\n\nCzas trwania obliczen: " << clock() - czas << "ms" << endl;
  64. wait(5000); //program wylaczy sie po 5 sek
  65.  
  66.  
  67.  
  68.  
  69. return 0;
  70.  
  71. }
  72.  
  73. void wait(int miliseconds) {
  74. clock_t endwait;
  75. endwait = clock() + miliseconds * (CLOCKS_PER_SEC / 1000);
  76. while (clock() < endwait) {}
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement