2015-12-06 2 views
-1

Инструкции: Напишите программу, которая использует метод выборки методом Монте-Карло, чтобы оценить среднее количество бутылок e-Boost, которые кто-то должен был бы выпить до выиграть приз. Есть шанс 1 на 5, что крышка бутылки будет иметь приз.Путаница с назначением школы

  1. Создайте новый проект под названием Метод Монте-Карло в Пакет оценок Unit05.
  2. Создайте класс под названием BottleCapPrize во вновь созданной папке проекта .
  3. Определите, сколько колпачков для бутылок каждому человеку необходимо открыть в , чтобы найти выигрышную кепку. (Это представляет собой одно испытание.) Распечатайте это значение в текстовом файле. Просмотрите предложение доктора Лина о выполнении этого моделирования с помощью кубиков.
  4. Подскажите пользователю количество испытаний. Проведите не менее 1000 испытаний.
  5. Считывание данных для всех испытаний из выходного файла.
  6. Рассчитайте среднее количество крышек, открытых для выигрыша.
  7. Распечатайте результат на экране.

редактировать:

import java.util.Scanner; 
import java.util.Random; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.io.File; 
public class BottleCapPrize 
{ 
    public static void main(String args[]) throws IOException 
    { 
     PrintWriter outFile = new PrintWriter(new File("bottleCap.txt")); 
     Scanner input = new Scanner (System.in); 
     int counter = 0; 
     int winCounter = 0;  

     Random randNum = new Random(); 
     int randNumber = randNum.nextInt(5) + 1; 

     System.out.print("How many trails would you like to do?"); 
     int trials = input.nextInt(); 

     while(trials != 1) 
     {    
      //Random randNum = new Random(); 
      randNumber = randNum.nextInt(5) + 1; 

      while(randNumber != 1) 
      { 

       if(randNumber != 1) 
       {    
        //System.out.println("You don't win"); 
       } 
       else if(randNumber == 1) 
       { 
        winCounter++; 
        outFile.println(counter); 
        System.out.println("You win in " + counter + "    bottles"); 
        winCounter++; 
        //System.out.println("counter: " + counter + "\tWin counter: " + winCounter); 
       } 
       counter++; 
      } 
     } 
     outFile.close(); 
    } 
} 
+1

Thats большой. Так в чем же замешательство? – Jabir

+1

И что вы пробовали до сих пор (кроме как просить нас написать всю вашу поручение для вас)? - см. http://stackoverflow.com/help/how-to-ask – Jonnus

+0

@Jabir Я редактировал свое оригинальное сообщение и добавил код, который я уже написал. –

ответ

0

(Этот ответ является преобразование the comments under the question в формальный ответ)

Вы испытываете бесконечный (бесконечный) цикл, как вы используете конструкцию

while(trials != 1) 

И все же никогда не устанавливается trials до 1.

Если вы хотите, чтобы цикл выполнялся только 10 раз, вы должны использовать цикл for и счетчик (я отмечаю, что у вас уже есть счетчик, который увеличивает каждую итерацию, но сам по себе не ссылается).

Используя цикл следующей структуры должно помочь при замене линии while(trials != 1) ссылка выше

for (int counter = 0; counter < 10; counter++) 
Смежные вопросы