Как я могу проверить, идут ли 3 кандидата последними в любом порядке с Монте-Карло - PullRequest
0 голосов
/ 27 октября 2018
/**
 * Monte Carlo Simulation, to determine the probability of sean gallagher, 
 * perter casey and gavin duffy finishing in last position in any order
 *
 * @author - Darragh Hackett
 * @version - 26/10/18
 *
 **/
import java.util.*;

public class electionMonteCarlo
{
    public static void main(String args[])
    {
        String[] dobby = {
            "Michael D. Higgins",
            "Peter Casey",
            "Sean Gallagher",
            "Liadh Ni Riada",
            "John Freeman",
            "Gavin Duffy"
        };

        ArrayList < String > elf = new ArrayList < > ();
        fillArray(elf);
        System.out.println(elf);

        double counter = 0;

    }

    public static void fillArray(ArrayList<String> freeElf)
    {
        Scanner votes = new Scanner(System.in);
        System.out.println("Enter a number, to determine the number of itterations");
        double vote_Itterations = votes.nextInt();
        Random probability = new Random();
        ArrayList < String > sock = new ArrayList < > ();
        double odds_random;

        for (int i = 0; i < vote_Itterations; i++)
        {
            odds_random = probability.nextDouble() * 1 + 0.0;

            if (odds_random > 0.0 && odds_random < 0.98)
            {
                sock.add("Michael D. Higgins");
                odds_random = probability.nextDouble() * 0.4 + 0.0;

                if (odds_random > 0.0 && odds_random < 0.0108)
                {
                    sock.add("Peter Casey");
                    odds_random = probability.nextDouble() * 0.29 + 0.0;

                    if (odds_random > 0.0 && odds_random < 0.016)
                    {
                        sock.add("Sean Gallagher");
                        odds_random = probability.nextDouble() * 0.26 + 0.0;
                    }
                }
            }
        }
        System.out.println(sock);
        String[] free = new String[sock.size()]; //create a new array into which the elements of sock are stored,
        free = sock.toArray(free); //The toArray method copies am ArrayList's elements into a typed array
        System.out.println(free);
    }
}

Так что мне нужно выяснить вероятность того, что Галлахер, Даффи или Кейси финишируют последними в любом порядке.

Мой код еще не включает других кандидатов, потому что мне все еще нужно выяснить вероятность того, что они будут выбраны. Поэтому я настроил вложенные if Stateents так, чтобы, если Хиггинс был первым, он исключался из числа вторых. Но моя проблема в том, что я не знаю, как проверить, придут ли три парня, которых я упомянул, последними или нет, и что когда я распечатываю ArrayList, который я преобразовал в Array Higgins, в нем много, но я знаю, что это потому, что он имеет наибольшую вероятность выигрыша.

Я не совсем понимаю вопрос, потому что он просто посмотрел на него, но даже у 3 демонстрантов, к которым я обратился за помощью, возникли проблемы с его выяснением. Я получил это далеко вчера вечером, но я все еще в замешательстве.

...