Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. #include <iostream>
  2. #include <time.h>
  3.  
  4. int durchfuhrungen = 50;
  5. double erfolg = 0.65;
  6. double niveau = 0.9;
  7.  
  8. void aufg1()
  9. {
  10. int oben, unten;
  11. double verteilung = 0;
  12. int mode = 0;
  13. if (mode == 0)
  14. {
  15. if (niveau == 0.8)
  16. {
  17. verteilung = 1.2824;
  18. }
  19. else if (niveau == 0.9)
  20. {
  21. verteilung = 1.6464;
  22. }
  23. else if (niveau == 0.95)
  24. {
  25. verteilung = 1.9623;
  26. }
  27. else if (niveau == 0.98)
  28. {
  29. verteilung = 2.3301;
  30. }
  31. else if (niveau == 0.99)
  32. {
  33. verteilung = 2.5807;
  34. }
  35. oben = ((double)durchfuhrungen * (double)erfolg + ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5) + 0.5;
  36. unten = ((double)durchfuhrungen * (double)erfolg - ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5) + 0.5;
  37. }
  38. else if (mode == 1)
  39. {
  40. if (niveau == 0.9)
  41. {
  42. verteilung = 1.2824;
  43. }
  44. else if (niveau == 0.95)
  45. {
  46. verteilung = 1.6464;
  47. }
  48. else if (niveau == 0.975)
  49. {
  50. verteilung = 1.9623;
  51. }
  52. else if (niveau == 0.99)
  53. {
  54. verteilung = 2.3301;
  55. }
  56. else if (niveau == 0.995)
  57. {
  58. verteilung = 2.5807;
  59. }
  60. oben = (double)durchfuhrungen * (double)erfolg + ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5;
  61. unten = 0;
  62. }
  63. else
  64. {
  65. if (niveau == 0.9)
  66. {
  67. verteilung = 1.2824;
  68. }
  69. else if (niveau == 0.95)
  70. {
  71. verteilung = 1.6464;
  72. }
  73. else if (niveau == 0.975)
  74. {
  75. verteilung = 1.9623;
  76. }
  77. else if (niveau == 0.99)
  78. {
  79. verteilung = 2.3301;
  80. }
  81. else if (niveau == 0.995)
  82. {
  83. verteilung = 2.5807;
  84. }
  85. oben = durchfuhrungen;
  86. unten = (double)durchfuhrungen * (double)erfolg - ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5;
  87. }
  88. std::cout << "Der Akzeptanzbereich beträgt [" << unten << ", " << oben << "]" << std::endl;
  89. }
  90.  
  91. void aufg2()
  92. {
  93. int anz = 100000;
  94. int oben, unten;
  95. double verteilung = 0;
  96. int mode = 0;
  97. int test = 0;
  98. int counter = 0;
  99. int counter2 = 0;
  100. if (mode == 0)
  101. {
  102. if (niveau == 0.8)
  103. {
  104. verteilung = 1.2824;
  105. }
  106. else if (niveau == 0.9)
  107. {
  108. verteilung = 1.6464;
  109. }
  110. else if (niveau == 0.95)
  111. {
  112. verteilung = 1.9623;
  113. }
  114. else if (niveau == 0.98)
  115. {
  116. verteilung = 2.3301;
  117. }
  118. else if (niveau == 0.99)
  119. {
  120. verteilung = 2.5807;
  121. }
  122. oben = ((double)durchfuhrungen * (double)erfolg + ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5) + 0.5;
  123. unten = ((double)durchfuhrungen * (double)erfolg - ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5) + 0.5;
  124. }
  125. else if (mode == 1)
  126. {
  127. if (niveau == 0.9)
  128. {
  129. verteilung = 1.2824;
  130. }
  131. else if (niveau == 0.95)
  132. {
  133. verteilung = 1.6464;
  134. }
  135. else if (niveau == 0.975)
  136. {
  137. verteilung = 1.9623;
  138. }
  139. else if (niveau == 0.99)
  140. {
  141. verteilung = 2.3301;
  142. }
  143. else if (niveau == 0.995)
  144. {
  145. verteilung = 2.5807;
  146. }
  147. oben = (double)durchfuhrungen * (double)erfolg + ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5;
  148. unten = 0;
  149. }
  150. else
  151. {
  152. if (niveau == 0.9)
  153. {
  154. verteilung = 1.2824;
  155. }
  156. else if (niveau == 0.95)
  157. {
  158. verteilung = 1.6464;
  159. }
  160. else if (niveau == 0.975)
  161. {
  162. verteilung = 1.9623;
  163. }
  164. else if (niveau == 0.99)
  165. {
  166. verteilung = 2.3301;
  167. }
  168. else if (niveau == 0.995)
  169. {
  170. verteilung = 2.5807;
  171. }
  172. oben = durchfuhrungen;
  173. unten = (double)durchfuhrungen * (double)erfolg - ((double)sqrt((double)durchfuhrungen * (double)erfolg * (1 - (double)erfolg)) * (double)verteilung) + 0.5;
  174. }
  175. for (int n = 0; n < anz; n++)
  176. {
  177. counter = 0;
  178. for (int i = 0; i < durchfuhrungen; i++)
  179. {
  180. test = rand() % 100;
  181. if (test < erfolg * 100)
  182. {
  183. counter++;
  184. }
  185. }
  186. if (counter <= oben && counter >= unten)
  187. {
  188. counter2++;
  189. }
  190. }
  191. std::cout << "Das Ergebnis der Ziehungen lag " << counter2 << " mal von " << anz << " im Akzeptanzbereich" << std::endl;
  192. }
  193.  
  194. int main()
  195. {
  196. srand(time(NULL));
  197. aufg1();
  198. aufg2();
  199. system("PAUSE");
  200. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement