|
2 | 2 |
|
3 | 3 | function runExperiment(sampleSize) {
|
4 | 4 | const valueCounts = [0, 0, 0, 0, 0, 0];
|
5 |
| - |
6 |
| - // TODO |
7 |
| - // Write a for loop that iterates `sampleSize` times (sampleSize is a number). |
8 |
| - // In each loop iteration: |
9 |
| - // |
10 |
| - // 1. Generate a random integer between 1 and 6 (as if throwing a six-sided die). |
11 |
| - // 2. Add `1` to the element of the `valueCount` that corresponds to the random |
12 |
| - // value from the previous step. Use the first element of `valueCounts` |
13 |
| - // for keeping a count how many times the value 1 is thrown, the second |
14 |
| - // element for value 2, etc. |
| 5 | + for (let i = 0; i < sampleSize; i++) { |
| 6 | + const x = Math.floor(Math.random() * 6); |
| 7 | + valueCounts[x]++; |
| 8 | + } |
15 | 9 |
|
16 | 10 | const results = [];
|
17 | 11 |
|
18 |
| - // TODO |
19 |
| - // Write a for..of loop for the `valueCounts` array created in the previous |
20 |
| - // loop. In each loop iteration: |
21 |
| - // 1. For each possible value of the die (1-6), compute the percentage of how |
22 |
| - // many times that value was thrown. Remember that the first value of |
23 |
| - // `valueCounts` represent the die value of 1, etc. |
24 |
| - // 2. Convert the computed percentage to a number string with a precision of |
25 |
| - // two decimals, e.g. '14.60'. |
26 |
| - // 3. Then push that string onto the `results` array. |
| 12 | + for (const count of valueCounts) { |
| 13 | + const percent = (count / sampleSize) * 100; |
| 14 | + results.push(percent.toFixed(2)); |
| 15 | + } |
27 | 16 |
|
28 | 17 | return results;
|
29 | 18 | }
|
30 | 19 |
|
31 | 20 | function main() {
|
32 | 21 | const sampleSizes = [100, 1000, 1000000];
|
33 | 22 |
|
34 |
| - // TODO |
35 |
| - // Write a for..of loop that calls the `runExperiment()` function for each |
36 |
| - // value of the `sampleSizes` array. |
37 |
| - // Log the results of each experiment as well as the experiment size to the |
38 |
| - // console. |
39 |
| - // The expected output could look like this: |
40 |
| - // |
41 |
| - // [ '26.00', '17.00', '10.00', '19.00', '16.00', '12.00' ] 100 |
42 |
| - // [ '14.60', '17.10', '19.30', '15.50', '16.70', '16.80' ] 1000 |
43 |
| - // [ '16.71', '16.68', '16.69', '16.66', '16.67', '16.59' ] 1000000 |
| 23 | + for (const size of sampleSizes) { |
| 24 | + const experimentResults = runExperiment(size); |
| 25 | + console.log(experimentResults, size); |
| 26 | + } |
44 | 27 | }
|
45 | 28 |
|
| 29 | +// TODO |
| 30 | +// Write a for..of loop that calls the `runExperiment()` function for each |
| 31 | +// value of the `sampleSizes` array. |
| 32 | +// Log the results of each experiment as well as the experiment size to the |
| 33 | +// console. |
| 34 | +// The expected output could look like this: |
| 35 | +// |
| 36 | +// [ '26.00', '17.00', '10.00', '19.00', '16.00', '12.00' ] 100 |
| 37 | +// [ '14.60', '17.10', '19.30', '15.50', '16.70', '16.80' ] 1000 |
| 38 | +// [ '16.71', '16.68', '16.69', '16.66', '16.67', '16.59' ] 1000000 |
| 39 | + |
46 | 40 | main();
|
0 commit comments