У меня проблемы с программой подбрасывания монеты

Я новичок в java и использую коды, мне нужно найти количество и процент орла/решки в программе 100 бросков. У меня есть 100 флипов, но процент и печать суммы мне не по силам, вот мой код и спасибо за помощь

public class CoinFlips extends ConsoleProgram
{
    public void run()
    {
        for (int i = 0; i < 100; i++)
    {
        if (Randomizer.nextBoolean())
        {
            System.out.println("Heads");
        }
        else
        {
        System.out.println("Tails");
        }
        }
    }
}

person Dallas Langford    schedule 22.02.2016    source источник
comment
Так как это из 100, просто следите за счетом обоих, и все готово.   -  person ChiefTwoPencils    schedule 22.02.2016
comment
@ChiefTwoPencils должно хватить одного. Счет другого всегда равен 100 - считай.   -  person JB Nizet    schedule 22.02.2016
comment
Я бы предпочел считать головы и решки, а не головы и общее количество. Первый мне кажется более симметричным.   -  person Bathsheba    schedule 22.02.2016


Ответы (4)


Вот возможное решение:

Добавлять:

int headCount = 0;
int tailsCount = 0;

Вы можете использовать их:

        if (Randomizer.nextBoolean())
    {
        System.out.println("Heads");
        headsCount++;
    }
    else
    {
    System.out.println("Tails");
        tailsCount++;
    }

Затем напишите метод для вычисления процента. Поскольку это похоже на домашнее задание, я оставлю это вам.

person DarkJade    schedule 22.02.2016

Проблема:

Вам понадобится счетчик и переменная для результата.

Решение

int TOTAL =100;
int counter =0;
for (int i = 0; i < TOTAL; i++) {
if (Randomizer.nextBoolean()) {
    System.out.println("Heads");
    counter++;
}else{
    System.out.println("Tails");
}

    double procent = (double)counter/TOTAL*100;
    System.out.println("From "+ TOTAL +" flipped coins " + procent+"% were Heads" );
}
person ΦXocę 웃 Пepeúpa ツ    schedule 22.02.2016
comment
Я не вижу необходимости в массиве. - person Patrick Gregorio; 22.02.2016

открытый класс CoinFlips расширяет ConsoleProgram {

public void run()
{
 int headsCount = 0;
    for (int i = 0; i < 100; i++)
    {
        if (Randomizer.nextBoolean())
        {
            System.out.println("Heads");
            headsCount++;
        }
        else
        {
            System.out.println("Tails");
        }
    }
    float headsPercentage = headsCount/100f;
    System.out.println("Heads percentage: " + headsPercentage.toString());
}


}

Это должно работать

person Łukasz Motyczka    schedule 22.02.2016

Вам нужно сохранить, сколько раз были головы и сколько раз решки: вам нужна переменная для хранения головок и увеличения переменной. каждый раз, когда он превращается в HEADS. Затем после цикла число в этой переменной будет количеством подбрасываний HEADS. Тейлз — 100 голов. Например:

public class CoinFlips extends ConsoleProgram
{
    public void run()
    {
        int heads = 0;
        for (int i = 0; i < 100; i++)
        {
            if (Randomizer.nextBoolean())
            {
                heads++;
                System.out.println("Heads");
            }
            else
            {
                 System.out.println("Tails");
            }
        }
        System.out.println("Percentage of Heads = " + heads + "%");
        System.out.println("Percentage of Tails = " + (100 - heads) + "%");
    }
}

Поскольку количество бросков монет равно 100, количество бросков ГОЛОВКИ равно проценту бросков ГОЛОВКИ, поэтому вы можете вывести фактическое значение переменной.

person Krasimir Stoev    schedule 22.02.2016
comment
Это сумма, а не процент. - person Patrick Gregorio; 22.02.2016
comment
Да, но из 100 бросков сумма равна проценту. - person Krasimir Stoev; 22.02.2016
comment
Поэтому добавьте символ процента в конце. - person Patrick Gregorio; 22.02.2016