Sarahi Moran
/
Proyecto3_simulaciones_Final
Randoms y redes de colas
main.cpp@1:659df3e8d3d6, 2015-12-04 (annotated)
- Committer:
- Sarahi
- Date:
- Fri Dec 04 02:12:47 2015 +0000
- Revision:
- 1:659df3e8d3d6
- Parent:
- 0:9aa5f35f299c
Simulaciones proyecto3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sarahi | 0:9aa5f35f299c | 1 | #include "mbed.h" |
Sarahi | 0:9aa5f35f299c | 2 | |
Sarahi | 0:9aa5f35f299c | 3 | Serial pc(USBTX, USBRX); // tx, rx |
Sarahi | 0:9aa5f35f299c | 4 | DigitalOut myled(LED2); |
Sarahi | 0:9aa5f35f299c | 5 | DigitalOut led_a(LED3); |
Sarahi | 0:9aa5f35f299c | 6 | |
Sarahi | 0:9aa5f35f299c | 7 | #define u1 8 |
Sarahi | 0:9aa5f35f299c | 8 | #define M1 1 |
Sarahi | 0:9aa5f35f299c | 9 | #define u2 3 |
Sarahi | 0:9aa5f35f299c | 10 | #define M2 3 |
Sarahi | 0:9aa5f35f299c | 11 | #define u3 15 |
Sarahi | 0:9aa5f35f299c | 12 | #define M3 1 |
Sarahi | 0:9aa5f35f299c | 13 | #define pQ3Q1 0.1 // probability of sending Q3 output to the Q1 input |
Sarahi | 0:9aa5f35f299c | 14 | #define pQ3Out 0.9 // probability of delivering Q3 output as system output |
Sarahi | 1:659df3e8d3d6 | 15 | #define tf 10000 |
Sarahi | 0:9aa5f35f299c | 16 | #define lambda 10 |
Sarahi | 0:9aa5f35f299c | 17 | #define pQ1I_Q2I 0.5 |
Sarahi | 1:659df3e8d3d6 | 18 | #define sz_a 1000 |
Sarahi | 0:9aa5f35f299c | 19 | |
Sarahi | 1:659df3e8d3d6 | 20 | int Q1[sz_a]= {0}; // initial Q1 |
Sarahi | 1:659df3e8d3d6 | 21 | int Q2[sz_a]= {0}; // initial Q2 |
Sarahi | 1:659df3e8d3d6 | 22 | int Q3[sz_a]= {0}; // initial Q3 |
Sarahi | 0:9aa5f35f299c | 23 | float t = 0; // initial simulation time |
Sarahi | 1:659df3e8d3d6 | 24 | float t_events_Q1[sz_a] = {0}; // time stamps for the k events |
Sarahi | 1:659df3e8d3d6 | 25 | float t_events_Q2[sz_a] = {0}; // time stamps for the k events |
Sarahi | 1:659df3e8d3d6 | 26 | float t_events_Q3[sz_a]= {0}; // time stamps for the k events |
Sarahi | 0:9aa5f35f299c | 27 | int k=1; // event number |
Sarahi | 0:9aa5f35f299c | 28 | |
Sarahi | 0:9aa5f35f299c | 29 | double SI = 0; |
Sarahi | 0:9aa5f35f299c | 30 | |
Sarahi | 0:9aa5f35f299c | 31 | double Q1I1 = tf; |
Sarahi | 0:9aa5f35f299c | 32 | double Q1I2 = 0; |
Sarahi | 0:9aa5f35f299c | 33 | double Q1O = 0; |
Sarahi | 0:9aa5f35f299c | 34 | |
Sarahi | 0:9aa5f35f299c | 35 | double Q2I1 = 0; |
Sarahi | 0:9aa5f35f299c | 36 | double Q2O = 0; |
Sarahi | 0:9aa5f35f299c | 37 | |
Sarahi | 0:9aa5f35f299c | 38 | double Q3I1 = 0; |
Sarahi | 0:9aa5f35f299c | 39 | double Q3I2 = 0; |
Sarahi | 0:9aa5f35f299c | 40 | double Q3O = tf; |
Sarahi | 0:9aa5f35f299c | 41 | |
Sarahi | 0:9aa5f35f299c | 42 | |
Sarahi | 0:9aa5f35f299c | 43 | double SO = 0; |
Sarahi | 0:9aa5f35f299c | 44 | |
Sarahi | 1:659df3e8d3d6 | 45 | float Q1_lambda [sz_a]= {lambda*0.5}; |
Sarahi | 1:659df3e8d3d6 | 46 | float Q2_lambda [sz_a]= {lambda*0.5}; |
Sarahi | 1:659df3e8d3d6 | 47 | float Q3_lambda [sz_a]= {1/(u1*M1) + 1/(u2*M2)}; |
Sarahi | 0:9aa5f35f299c | 48 | |
Sarahi | 0:9aa5f35f299c | 49 | float t_Q1=0; |
Sarahi | 0:9aa5f35f299c | 50 | float t_Q2=0; |
Sarahi | 0:9aa5f35f299c | 51 | float t_Q3=0; |
Sarahi | 0:9aa5f35f299c | 52 | |
Sarahi | 0:9aa5f35f299c | 53 | float eventtime_Q1=0; |
Sarahi | 0:9aa5f35f299c | 54 | float eventtime_Q2=0; |
Sarahi | 0:9aa5f35f299c | 55 | float eventtime_Q3=0; |
Sarahi | 0:9aa5f35f299c | 56 | float eventtime=0; |
Sarahi | 0:9aa5f35f299c | 57 | |
Sarahi | 0:9aa5f35f299c | 58 | double min_2(double x, double y); |
Sarahi | 0:9aa5f35f299c | 59 | double min_3(double x, double y, double z); |
Sarahi | 0:9aa5f35f299c | 60 | int max_2(int x, int y); |
Sarahi | 0:9aa5f35f299c | 61 | double max_3(double x, double y, double z); |
Sarahi | 1:659df3e8d3d6 | 62 | float var_rand(float x); |
Sarahi | 0:9aa5f35f299c | 63 | |
Sarahi | 1:659df3e8d3d6 | 64 | int Q1k; |
Sarahi | 1:659df3e8d3d6 | 65 | int Q2k; |
Sarahi | 1:659df3e8d3d6 | 66 | int Q3k; |
Sarahi | 1:659df3e8d3d6 | 67 | |
Sarahi | 1:659df3e8d3d6 | 68 | |
Sarahi | 1:659df3e8d3d6 | 69 | float x_i=0; |
Sarahi | 1:659df3e8d3d6 | 70 | float exprnd=0; |
Sarahi | 0:9aa5f35f299c | 71 | int i=0; |
Sarahi | 0:9aa5f35f299c | 72 | int main() |
Sarahi | 0:9aa5f35f299c | 73 | { |
Sarahi | 1:659df3e8d3d6 | 74 | |
Sarahi | 0:9aa5f35f299c | 75 | while( t <= tf ){ |
Sarahi | 0:9aa5f35f299c | 76 | myled=0; |
Sarahi | 0:9aa5f35f299c | 77 | //exprnd(1/freq) simulate an exponential pdf with parameter = average time = 1 / arriving rate |
Sarahi | 0:9aa5f35f299c | 78 | |
Sarahi | 1:659df3e8d3d6 | 79 | // System input |
Sarahi | 1:659df3e8d3d6 | 80 | |
Sarahi | 1:659df3e8d3d6 | 81 | SI = var_rand(lambda); |
Sarahi | 1:659df3e8d3d6 | 82 | |
Sarahi | 0:9aa5f35f299c | 83 | |
Sarahi | 0:9aa5f35f299c | 84 | // Q1 |
Sarahi | 0:9aa5f35f299c | 85 | Q1I1 = Q3O/pQ3Q1; |
Sarahi | 0:9aa5f35f299c | 86 | Q1I2 = SI/0.5; |
Sarahi | 1:659df3e8d3d6 | 87 | printf("Sl: %lf \n", SI); |
Sarahi | 0:9aa5f35f299c | 88 | Q1_lambda [k]= (1/Q1I1 + 1/Q1I2); |
Sarahi | 0:9aa5f35f299c | 89 | |
Sarahi | 0:9aa5f35f299c | 90 | //printf("Q1I1: %lf \n", Q1I1); |
Sarahi | 0:9aa5f35f299c | 91 | //printf("Q1I2: %lf \n", Q1I2); |
Sarahi | 0:9aa5f35f299c | 92 | //printf("Q1_lambda: %f \n", Q1_lambda[k]); |
Sarahi | 0:9aa5f35f299c | 93 | |
Sarahi | 0:9aa5f35f299c | 94 | if(Q1[k] > 0){ |
Sarahi | 1:659df3e8d3d6 | 95 | Q1O = float(u1)*float (M1); // service time in the queue |
Sarahi | 1:659df3e8d3d6 | 96 | Q1O= var_rand(Q1O); |
Sarahi | 0:9aa5f35f299c | 97 | } |
Sarahi | 0:9aa5f35f299c | 98 | else{ |
Sarahi | 0:9aa5f35f299c | 99 | Q1O= min_2(Q1I1,Q1I2)+1.0; |
Sarahi | 0:9aa5f35f299c | 100 | } |
Sarahi | 0:9aa5f35f299c | 101 | //printf("Q1O: %lf \n", Q1O); |
Sarahi | 0:9aa5f35f299c | 102 | |
Sarahi | 0:9aa5f35f299c | 103 | // Update queue Q1 |
Sarahi | 0:9aa5f35f299c | 104 | t_events_Q1[k]=(t+min_3(Q1I1,Q1I2,Q1O)); |
Sarahi | 0:9aa5f35f299c | 105 | //printf("Q1K :%d \n",Q1[k]); |
Sarahi | 0:9aa5f35f299c | 106 | if ( (Q1O < Q1I1) && (Q1O < Q1I2) ){ |
Sarahi | 0:9aa5f35f299c | 107 | Q1k=Q1[k]- 1; |
Sarahi | 0:9aa5f35f299c | 108 | Q1[k+1]=max_2(0,Q1k); // Q1 is reduced by one |
Sarahi | 0:9aa5f35f299c | 109 | |
Sarahi | 0:9aa5f35f299c | 110 | } |
Sarahi | 0:9aa5f35f299c | 111 | else { |
Sarahi | 0:9aa5f35f299c | 112 | Q1[k+1]=Q1[k]+1; // Q1 is increased by one due to Q1 input (only one of the two inputs is considered) |
Sarahi | 0:9aa5f35f299c | 113 | } |
Sarahi | 0:9aa5f35f299c | 114 | |
Sarahi | 0:9aa5f35f299c | 115 | //printf("Q1K :%d \n",Q1[k+1]); |
Sarahi | 0:9aa5f35f299c | 116 | eventtime_Q1 = min_3(Q1I1, Q1I2, Q1O); |
Sarahi | 0:9aa5f35f299c | 117 | t_Q1 = t; |
Sarahi | 0:9aa5f35f299c | 118 | t_Q1 = t_Q1 + eventtime_Q1; |
Sarahi | 0:9aa5f35f299c | 119 | |
Sarahi | 0:9aa5f35f299c | 120 | // Q2 |
Sarahi | 0:9aa5f35f299c | 121 | Q2I1 = SI/pQ1I_Q2I; |
Sarahi | 0:9aa5f35f299c | 122 | //printf("Q2I1 :%lf \n",Q2I1); |
Sarahi | 0:9aa5f35f299c | 123 | Q2_lambda[k] = (1.0/Q2I1); |
Sarahi | 0:9aa5f35f299c | 124 | //printf("Q2_lambda :%f \n",Q2_lambda[k]); |
Sarahi | 0:9aa5f35f299c | 125 | |
Sarahi | 0:9aa5f35f299c | 126 | if(Q2[k] > 0){ |
Sarahi | 1:659df3e8d3d6 | 127 | Q2O = float(u2)*float(M2); // service time in the queue |
Sarahi | 1:659df3e8d3d6 | 128 | Q2O= var_rand(Q2O); |
Sarahi | 0:9aa5f35f299c | 129 | } |
Sarahi | 0:9aa5f35f299c | 130 | else{ |
Sarahi | 0:9aa5f35f299c | 131 | Q2O = Q2I1 + 1.0; |
Sarahi | 0:9aa5f35f299c | 132 | } |
Sarahi | 0:9aa5f35f299c | 133 | //printf("Q20 :%f \n",Q2O); |
Sarahi | 0:9aa5f35f299c | 134 | |
Sarahi | 0:9aa5f35f299c | 135 | // Update queue Q2 |
Sarahi | 0:9aa5f35f299c | 136 | t_events_Q2[k]=(t+min_2(Q2I1, Q2O)); |
Sarahi | 0:9aa5f35f299c | 137 | //printf("Q2[k]: %d\n",Q2[k]); |
Sarahi | 0:9aa5f35f299c | 138 | if ( Q2O < Q2I1 ){ |
Sarahi | 0:9aa5f35f299c | 139 | Q2k=Q2[k]- 1; |
Sarahi | 0:9aa5f35f299c | 140 | // printf("Q2K %d: \n",Q2k); |
Sarahi | 0:9aa5f35f299c | 141 | Q2[k+1]=max_2(0,Q2k); // Q2 is reduced by one |
Sarahi | 0:9aa5f35f299c | 142 | } |
Sarahi | 0:9aa5f35f299c | 143 | else{ |
Sarahi | 0:9aa5f35f299c | 144 | Q2[k+1]= (Q2[k])+1; // Q2 is increased by one due to Q2 input |
Sarahi | 0:9aa5f35f299c | 145 | } |
Sarahi | 0:9aa5f35f299c | 146 | //printf("Q2[k]: %d\n",Q2[k+1]); |
Sarahi | 0:9aa5f35f299c | 147 | eventtime_Q2 = min_2(Q2I1, Q2O); |
Sarahi | 0:9aa5f35f299c | 148 | t_Q2 = t; |
Sarahi | 0:9aa5f35f299c | 149 | t_Q2 = t_Q2 + eventtime_Q2; |
Sarahi | 0:9aa5f35f299c | 150 | |
Sarahi | 0:9aa5f35f299c | 151 | |
Sarahi | 0:9aa5f35f299c | 152 | //Q3 |
Sarahi | 0:9aa5f35f299c | 153 | Q3I1 = Q1O; |
Sarahi | 0:9aa5f35f299c | 154 | Q3I2 = Q2O; |
Sarahi | 0:9aa5f35f299c | 155 | //printf("Q3I1: %lf \n",Q3I1); |
Sarahi | 0:9aa5f35f299c | 156 | //printf("Q3I2: %lf \n",Q3I2); |
Sarahi | 0:9aa5f35f299c | 157 | Q3_lambda [k]= 1/Q3I1 + 1/Q3I2; |
Sarahi | 0:9aa5f35f299c | 158 | //printf("Q3_lambda: %f \n",Q3_lambda[k]); |
Sarahi | 0:9aa5f35f299c | 159 | |
Sarahi | 0:9aa5f35f299c | 160 | if(Q3[k] > 0){ |
Sarahi | 1:659df3e8d3d6 | 161 | Q3O = float(u3)*float(M3); // service time in the queue |
Sarahi | 1:659df3e8d3d6 | 162 | Q3O= var_rand(Q3O); |
Sarahi | 0:9aa5f35f299c | 163 | } |
Sarahi | 0:9aa5f35f299c | 164 | else{ |
Sarahi | 0:9aa5f35f299c | 165 | Q3O = min_2(Q1O, Q2O) + 1.0; |
Sarahi | 0:9aa5f35f299c | 166 | } |
Sarahi | 0:9aa5f35f299c | 167 | |
Sarahi | 0:9aa5f35f299c | 168 | //printf("Q3O: %lf \n",Q3O); |
Sarahi | 0:9aa5f35f299c | 169 | // Update queue Q3 |
Sarahi | 0:9aa5f35f299c | 170 | t_events_Q3[k]= t+min_3(Q3I1, Q3I2, Q3O); |
Sarahi | 0:9aa5f35f299c | 171 | //printf("Q3[k]: %d \n", Q3[k]); |
Sarahi | 0:9aa5f35f299c | 172 | if ( (Q3O < Q3I1) && (Q3O < Q3I2) ){ |
Sarahi | 0:9aa5f35f299c | 173 | Q3k=Q3[k]- 1; |
Sarahi | 0:9aa5f35f299c | 174 | // printf("Q3k: %f \n", Q3k); |
Sarahi | 0:9aa5f35f299c | 175 | Q3[k+1]=max_2(0,Q3k); // Q3 is reduced by one |
Sarahi | 0:9aa5f35f299c | 176 | } |
Sarahi | 0:9aa5f35f299c | 177 | else { |
Sarahi | 0:9aa5f35f299c | 178 | Q3[k+1]= Q3[k] + 1; // Q3 is increased by one due to Q3 input (only one of the two inputs is considered) |
Sarahi | 0:9aa5f35f299c | 179 | |
Sarahi | 0:9aa5f35f299c | 180 | } |
Sarahi | 0:9aa5f35f299c | 181 | //printf("Q3[k]: %d \n",Q3[k+1]); |
Sarahi | 0:9aa5f35f299c | 182 | eventtime_Q3 = min_3(Q3I1, Q3I2, Q3O); |
Sarahi | 0:9aa5f35f299c | 183 | t_Q3 = t; |
Sarahi | 0:9aa5f35f299c | 184 | t_Q3 = t_Q3 + eventtime_Q2; |
Sarahi | 0:9aa5f35f299c | 185 | |
Sarahi | 0:9aa5f35f299c | 186 | // System output |
Sarahi | 0:9aa5f35f299c | 187 | SO = Q3O/pQ3Out; |
Sarahi | 0:9aa5f35f299c | 188 | |
Sarahi | 0:9aa5f35f299c | 189 | eventtime = max_3(eventtime_Q1, eventtime_Q2, eventtime_Q3); |
Sarahi | 0:9aa5f35f299c | 190 | t = t + eventtime; |
Sarahi | 0:9aa5f35f299c | 191 | k=k+1; |
Sarahi | 0:9aa5f35f299c | 192 | |
Sarahi | 0:9aa5f35f299c | 193 | myled=1; |
Sarahi | 0:9aa5f35f299c | 194 | wait(0.5); |
Sarahi | 0:9aa5f35f299c | 195 | } |
Sarahi | 0:9aa5f35f299c | 196 | |
Sarahi | 1:659df3e8d3d6 | 197 | |
Sarahi | 0:9aa5f35f299c | 198 | led_a=0; |
Sarahi | 1:659df3e8d3d6 | 199 | wait(1); |
Sarahi | 1:659df3e8d3d6 | 200 | pc.printf("k="); |
Sarahi | 1:659df3e8d3d6 | 201 | pc.printf("%d\r\n",k); |
Sarahi | 1:659df3e8d3d6 | 202 | wait(.5); |
Sarahi | 1:659df3e8d3d6 | 203 | |
Sarahi | 1:659df3e8d3d6 | 204 | pc.printf("Q1\n"); |
Sarahi | 1:659df3e8d3d6 | 205 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 206 | pc.printf("%d, ",Q1[i]); |
Sarahi | 1:659df3e8d3d6 | 207 | |
Sarahi | 1:659df3e8d3d6 | 208 | } |
Sarahi | 1:659df3e8d3d6 | 209 | |
Sarahi | 1:659df3e8d3d6 | 210 | pc.printf("\n Q2\n"); |
Sarahi | 1:659df3e8d3d6 | 211 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 212 | pc.printf("%d, ",Q2[i]); |
Sarahi | 1:659df3e8d3d6 | 213 | |
Sarahi | 1:659df3e8d3d6 | 214 | } |
Sarahi | 1:659df3e8d3d6 | 215 | |
Sarahi | 1:659df3e8d3d6 | 216 | pc.printf("\n Q3\n"); |
Sarahi | 1:659df3e8d3d6 | 217 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 218 | pc.printf("%d, ",Q3[i]); |
Sarahi | 1:659df3e8d3d6 | 219 | |
Sarahi | 1:659df3e8d3d6 | 220 | } |
Sarahi | 1:659df3e8d3d6 | 221 | |
Sarahi | 1:659df3e8d3d6 | 222 | pc.printf("\n Q1_lambda\n"); |
Sarahi | 0:9aa5f35f299c | 223 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 224 | pc.printf("%f, ",Q1_lambda[i]); |
Sarahi | 1:659df3e8d3d6 | 225 | |
Sarahi | 1:659df3e8d3d6 | 226 | } |
Sarahi | 1:659df3e8d3d6 | 227 | |
Sarahi | 1:659df3e8d3d6 | 228 | pc.printf("\n Q2_lambda\n"); |
Sarahi | 1:659df3e8d3d6 | 229 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 230 | pc.printf("%f, ",Q2_lambda[i]); |
Sarahi | 1:659df3e8d3d6 | 231 | |
Sarahi | 1:659df3e8d3d6 | 232 | } |
Sarahi | 1:659df3e8d3d6 | 233 | pc.printf("\n Q3_lambda\n"); |
Sarahi | 1:659df3e8d3d6 | 234 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 235 | pc.printf("%f, ",Q3_lambda[i]); |
Sarahi | 1:659df3e8d3d6 | 236 | |
Sarahi | 1:659df3e8d3d6 | 237 | } |
Sarahi | 1:659df3e8d3d6 | 238 | |
Sarahi | 1:659df3e8d3d6 | 239 | pc.printf("\n t_events_Q1\n"); |
Sarahi | 1:659df3e8d3d6 | 240 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 241 | pc.printf("%f, ",t_events_Q1[i]); |
Sarahi | 1:659df3e8d3d6 | 242 | |
Sarahi | 1:659df3e8d3d6 | 243 | } |
Sarahi | 1:659df3e8d3d6 | 244 | pc.printf("\n t_events_Q2\n"); |
Sarahi | 1:659df3e8d3d6 | 245 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 246 | pc.printf("%f, ",t_events_Q2[i]); |
Sarahi | 1:659df3e8d3d6 | 247 | |
Sarahi | 1:659df3e8d3d6 | 248 | } |
Sarahi | 1:659df3e8d3d6 | 249 | |
Sarahi | 1:659df3e8d3d6 | 250 | pc.printf("\n t_events_Q3\n"); |
Sarahi | 1:659df3e8d3d6 | 251 | for (i=0; i<=k; i++){ |
Sarahi | 1:659df3e8d3d6 | 252 | pc.printf("%f, ",t_events_Q3[i]); |
Sarahi | 1:659df3e8d3d6 | 253 | |
Sarahi | 1:659df3e8d3d6 | 254 | } |
Sarahi | 1:659df3e8d3d6 | 255 | |
Sarahi | 0:9aa5f35f299c | 256 | |
Sarahi | 0:9aa5f35f299c | 257 | led_a=1; |
Sarahi | 0:9aa5f35f299c | 258 | } |
Sarahi | 0:9aa5f35f299c | 259 | |
Sarahi | 0:9aa5f35f299c | 260 | |
Sarahi | 0:9aa5f35f299c | 261 | //-----------------------Función para obtener el minimo de 2 números ---------------------------------------------// |
Sarahi | 0:9aa5f35f299c | 262 | double min_2(double x, double y){ |
Sarahi | 0:9aa5f35f299c | 263 | double min=0; |
Sarahi | 0:9aa5f35f299c | 264 | if (x<y){ |
Sarahi | 0:9aa5f35f299c | 265 | min= x; |
Sarahi | 0:9aa5f35f299c | 266 | } |
Sarahi | 0:9aa5f35f299c | 267 | else { |
Sarahi | 0:9aa5f35f299c | 268 | min=y; |
Sarahi | 0:9aa5f35f299c | 269 | } |
Sarahi | 0:9aa5f35f299c | 270 | return min; |
Sarahi | 0:9aa5f35f299c | 271 | |
Sarahi | 0:9aa5f35f299c | 272 | } |
Sarahi | 0:9aa5f35f299c | 273 | |
Sarahi | 0:9aa5f35f299c | 274 | ///-----------------------Función para obtener el minimo de 3 números ---------------------------------------------// |
Sarahi | 0:9aa5f35f299c | 275 | double min_3(double x, double y, double z){ |
Sarahi | 0:9aa5f35f299c | 276 | double min=0; |
Sarahi | 0:9aa5f35f299c | 277 | if ((x<y)&&(x<z)){ |
Sarahi | 0:9aa5f35f299c | 278 | min= x; |
Sarahi | 0:9aa5f35f299c | 279 | } |
Sarahi | 0:9aa5f35f299c | 280 | else if ((y<x)&&(y<z)){ |
Sarahi | 0:9aa5f35f299c | 281 | min= y; |
Sarahi | 0:9aa5f35f299c | 282 | } |
Sarahi | 0:9aa5f35f299c | 283 | else { |
Sarahi | 0:9aa5f35f299c | 284 | min=z; |
Sarahi | 0:9aa5f35f299c | 285 | } |
Sarahi | 0:9aa5f35f299c | 286 | return min; |
Sarahi | 0:9aa5f35f299c | 287 | } |
Sarahi | 0:9aa5f35f299c | 288 | |
Sarahi | 0:9aa5f35f299c | 289 | //-----------------------Función para obtener el miáximo de 2 números ---------------------------------------------// |
Sarahi | 0:9aa5f35f299c | 290 | int max_2(int x, int y){ |
Sarahi | 0:9aa5f35f299c | 291 | int max=0; |
Sarahi | 0:9aa5f35f299c | 292 | if(x>y){ |
Sarahi | 0:9aa5f35f299c | 293 | max=x; |
Sarahi | 0:9aa5f35f299c | 294 | } |
Sarahi | 0:9aa5f35f299c | 295 | else { |
Sarahi | 0:9aa5f35f299c | 296 | max=y; |
Sarahi | 0:9aa5f35f299c | 297 | } |
Sarahi | 0:9aa5f35f299c | 298 | return max; |
Sarahi | 0:9aa5f35f299c | 299 | } |
Sarahi | 0:9aa5f35f299c | 300 | |
Sarahi | 0:9aa5f35f299c | 301 | |
Sarahi | 0:9aa5f35f299c | 302 | //-----------------------Función para obtener el máximo de 3 números ---------------------------------------------// |
Sarahi | 0:9aa5f35f299c | 303 | double max_3(double x, double y, double z){ |
Sarahi | 0:9aa5f35f299c | 304 | double max=0; |
Sarahi | 0:9aa5f35f299c | 305 | if ((x>y)&&(x>z)){ |
Sarahi | 0:9aa5f35f299c | 306 | max= x; |
Sarahi | 0:9aa5f35f299c | 307 | } |
Sarahi | 0:9aa5f35f299c | 308 | else if ((y>x)&&(y>z)){ |
Sarahi | 0:9aa5f35f299c | 309 | max= y; |
Sarahi | 0:9aa5f35f299c | 310 | } |
Sarahi | 0:9aa5f35f299c | 311 | else { |
Sarahi | 0:9aa5f35f299c | 312 | max=z; |
Sarahi | 0:9aa5f35f299c | 313 | } |
Sarahi | 0:9aa5f35f299c | 314 | return max; |
Sarahi | 1:659df3e8d3d6 | 315 | } |
Sarahi | 1:659df3e8d3d6 | 316 | |
Sarahi | 1:659df3e8d3d6 | 317 | float var_rand(double x){ |
Sarahi | 1:659df3e8d3d6 | 318 | x_i= rand()%100; |
Sarahi | 1:659df3e8d3d6 | 319 | x_i= x_i/float(100); |
Sarahi | 1:659df3e8d3d6 | 320 | //pc.printf("x_i: %f\n",x_i); |
Sarahi | 1:659df3e8d3d6 | 321 | exprnd=(-1.0)*float(x)*log(x_i); |
Sarahi | 1:659df3e8d3d6 | 322 | return exprnd; |
Sarahi | 0:9aa5f35f299c | 323 | } |