Advertisement
Guest User

CAN I HAZ CHEEZBERGER?!?!?!?

a guest
Aug 25th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. //~~~~~ MAIN PROGRAM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`',
  2. //```````````````````````````````````````````````````````````````````````````````````
  3. int main() {
  4. //random seed
  5. randSeed();
  6. //run R5
  7. int tNum; //roll count
  8. int A; //first die count
  9. int B; //second die count
  10. //get info from user
  11. printf("enter roll count:"); scanf("%d",&tNum);
  12. printf("enter first die count:"); scanf("%d",&A);
  13. printf("enter second die count:"); scanf("%d",&B);
  14. //run simulation
  15. double CR_TOT = 0.0;
  16. int z;
  17. int dieA[tNum];
  18. int dieB[tNum];
  19. printf("dieA\tdieB\tRAB\t\tCR\n");
  20. for (z = 0; z < tNum; z++) {
  21. int k;
  22. rollFunc(&k,A);
  23. dieA[z] = k;
  24. rollFunc(&k,B);
  25. dieB[z] = k;
  26. double COEFF_A = B*1.0/((A+B)*1.0);
  27. double COEFF_B = A*1.0/((A+B)*1.0);
  28. double RAB;
  29. RAB = COEFF_A*dieA[z] + COEFF_B*dieB[z];
  30. double DEN = 2.0*A*B/((A+B)*1.0);
  31. double NUM = B*1.0/((A+B)*1.0) + A*1.0/((A+B)*1.0);
  32. double CR;
  33. CR = (RAB - NUM)/(DEN - NUM);
  34. CR_TOT += CR;
  35. printf("%d\t%d\t%f\t%f\n",dieA[z],dieB[z],RAB,CR);
  36. }
  37. CR_TOT = CR_TOT/tNum;
  38. printf("Average on Roll Stack: %f\n",CR_TOT);
  39. return 0;
  40. }
  41. //~~~~~ FUNCTIONS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`',
  42. #include"statDefs.h" //statisticl algorithms
  43. #include"arrayDefs.h" //array methods
  44. #include"determinant.h" //classic determinant
  45. #include"linearAlgebra.h" //linear algebraic methods
  46. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~ ~ ~ ~
  47. // ^^^ ABOVE IS OFTEN BLOATED AS CODE IS COPIED UNTIL PURSUED IN ACTIVE MARKET ^^^
  48. //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`',
  49. //~~~~~ functions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`',
  50. void dUb(int *kIn) {
  51. double RAND = pRand();
  52. if(RAND < 0.5) {*kIn = 1;}
  53. else {*kIn = 2;}
  54. }
  55. void tRp(int *kIn) {
  56. double RAND = pRand();
  57. if(RAND < 0.25) {*kIn = 1;}
  58. else if (RAND < 0.5) {*kIn = 2;}
  59. else if (RAND < .75) {*kIn = 3;}
  60. else {tRp(kIn);}
  61. }
  62. //variate roll functor
  63. void rollFunc(int *rOut,int A) {
  64. double RAND = pRand();
  65. double STEP = 1.0/A;
  66. double CHECK = STEP;
  67. int RESPONSE = 1;
  68. while (CHECK < RAND) {
  69. RESPONSE += 1;
  70. CHECK += STEP;
  71. }
  72. *rOut = RESPONSE;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement