2010-02-11 2 views
0

내 프로그램을 두 세트의 숫자 (원래 & 보완) 사이에서 무작위로 선택해야하지만이 루프는 5 세트가 있습니다. 어떻게 각각의 세트에서 두 (원래 & 보완) 사이에 임의로 선택할 수있는 프로그램을 할당 할 수 있습니까? 확인 그래서이 ... 난 지금까지 무엇을 가지고 두 개의 루프에서 임의의 클래스를 선택하는 자바 알고리즘

import java.util.Scanner; 

import java.util.Random; 

public class NumberFinder { 

    int number; 

    int t = 1; 
    int v; 
    Scanner scan = new Scanner(System.in); 

    public void display() 

    { 
     if (t % 4 != 0) 
      System.out.print(v + " "); 
     else 
      System.out.println(v); 

     t++; 

    } 

    public int findNumber() { 

     Random generator = new Random(); 
     { 
      { 
       for (v = 1; v < 32;) { 
        display(); 

        if (v % 2 == 1) 
         v += 2; 
       } 

       for (v = 0; v < 32;) 
        ; 
       { 
        display(); 

        if (v % 2 == 1) 
         v += 2; 
       } 

      } 
      System.out.println("Is your number in this set?"); 

      String response1 = scan.nextLine(); 

      for (v = 2; v < 32;) { 
       display(); 

       if (v % 2 == 0) 
        v++; 
       else 
        v += 3; 
      } 

      for (v = 0; v < 32;) { 
       display(); 
       if (v % 2 == 0) 
        v++; 
       else 
        v += 3; 
      } 

      System.out.println("Is your number in this set?"); 
      String response2 = scan.nextLine(); 

      for (v = 4; v < 32;) { 
       display(); 

       if (v % 4 == 3) 
        v += 5; 
       else 
        v++; 
      } 

      for (v = 0; v < 32;) 
       ; 
      { 
       if (v % 4 == 3) 
        v += 5; 
       else 
        v++; 
      } 

      System.out.println("Is your number in this set?"); 

      String response3 = scan.nextLine(); 

      for (v = 8; v < 32;) { 
       display(); 
       if (v % 8 == 7) 
        v += 9; 
       else 
        v++; 
      } 

      for (v = 0; v < 32;) { 
       display(); 
       if (v % 8 == 7) 
        v += 9; 
       else 
        v++; 

      } 

      System.out.println("Is your number in this set?"); 

      String response4 = scan.nextLine(); 

      for (v = 16; v < 32;) { 
       display(); 
       if (v % 1 == 0) 
        v++; 

      } 

      for (v = 0; v < 32;) { 
       display(); 
       if (v % 1 == 0) 
        v++; 
      } 

      System.out.println("Is your number in the set?"); 
      String response5 = scan.nextLine(); 

      if (response1.equalsIgnoreCase("y")) 
       number += 1; 
      if (response2.equalsIgnoreCase("y")) 
       number += 2; 
      if (response3.equalsIgnoreCase("y")) 
       number += 4; 
      if (response4.equalsIgnoreCase("y")) 
       number += 8; 
      if (response5.equalsIgnoreCase("y")) 
       number += 16; 

      return number; 
     } 

    } 
} 

확인을 잘 난 당신이 내가 자신의 보완으로 5 개 세트를 선택하라는 메시지가 된 지금 31 0 사이에 대해 생각하는 숫자를 추측되어 porgram (바이너리를 사용하여 세트를 만들었습니다.) 이제는 총 10 세트를 가지고 있는데도 5 개를 보여 주려고합니다 (이것은 무작위로 나옵니다). 보완과 원래 무작위 중 하나를 선택하도록되어 있으므로 한 세트에서 첫 번째 보완하고 내 번호가 있다면 다음 번 번호 표시 (이 시간은 두 번째 세트의 원본입니다)라고 말했다. 내가 어떻게 알아낼 수 없는지 ... 원래 질문과 보완 질문 중에서 무작위로 선택하는 첫 번째 질문의 경우 & & 다음 두 번째 질문과 같은 질문은 다섯 번째 질문까지 동일하게하십시오.

+1

이미 작성한 코드를 게시 할 수 있습니까? –

+0

나는 당신이하려고하는 것이 분명하지 않다고 생각합니다. 프로그램의 입력과 출력이 무엇을 기대하는지 예를들 수 있습니까? 난 당신이 무작위로 생성기를 생성하지만, 어디서나 그것을 사용하지 않는 것을 알 수 있습니다. –

+0

이 숙제가 있습니까? – Pool

답변

0

우선 java.util.Random의 인스턴스를 만들겠습니다. 실제로 을 사용하는 경우을 사용 하시겠습니까? 그런 다음 숫자 집합을 표현하기를 원하신다면 java.util.HashSet을 사용해보십시오.

코드로 무엇을 달성하려고합니까? 나는 머리도 꼬리도 만들 수 없다. 의미있는 변수 이름을 사용하여 작은 방법으로 분해하십시오.

관련 문제