Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*The only things that need to be changed are the lines followed by comments*/
- int simulations = 10000000;
- int numberOfAthletes = 16; //Number of athletes left
- int[] originalScores = {100, 75, 60, 50, 40, 30, 25, 20, 15, 12, 10, 8, 6, 5, 4, 3, 2, 1}; //Initial scores
- float increaser = 1.5;
- int eventNumber = 2; //Number of the current event (excluding team events)
- int powerEventNumber = eventNumber - 1;
- float multiplyFactor = pow(increaser, powerEventNumber);
- float[] loseCount = new float[numberOfAthletes];
- void setup() {
- for (int i = 0; i < numberOfAthletes; i++) {
- loseCount[i] = 0;
- }
- for (int i = 0; i < simulations; i++) {
- int[] swap = new int[numberOfAthletes];
- boolean[] taken = new boolean[numberOfAthletes];
- int[] currentScores = {158, 119, 112, 110, 95, 90, 78, 77, 55, 53, 50, 45, 43, 35, 24, 12}; //Athlete's current scores
- for (int j = 0; j < numberOfAthletes; j++) {
- swap[j] = -1;
- taken[j] = false;
- }
- for (int j = 0; j < numberOfAthletes; j++) {
- while (swap[j] == -1 || taken[swap[j]]) {
- swap[j] = int(random(0, numberOfAthletes));
- }
- taken[swap[j]] = true;
- currentScores[j] += round(originalScores[swap[j]] * multiplyFactor);
- }
- int lowestScore = 10000000;
- int eliminatedAthlete = 0;
- for (int j = 0; j < numberOfAthletes; j++) {
- if (currentScores[j] < lowestScore) {
- lowestScore = currentScores[j];
- eliminatedAthlete = j;
- }
- }
- loseCount[eliminatedAthlete]++;
- }
- for (int i = 0; i < numberOfAthletes; i++) {
- loseCount[i] = loseCount[i] / (float(simulations) / 100.0);
- println("Athlete " + (i + 1) + "'s percentage: " + loseCount[i] + "%");
- }
- }
Add Comment
Please, Sign In to add comment