2010-02-11 43 views
0

我必須讓我的程序隨機選擇兩組數字(原始的&補碼),但是有5組循環。我如何指定程序在每組中的兩個(原始&補碼)之間隨機選擇? 確定,所以這是我迄今爲止...從兩個循環中選擇的隨機類的Java算法

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; 
     } 

    } 
} 

確定好了porgram我應該猜到你的心思現在31 0到我被要求選擇5套與它們的補數(我使用二進制文件來設置集合)。現在,即使我總共有10套,我只是假設顯示5(這是隨機發揮作用的地方),我應該讓它在補碼和原始隨機數之間進行選擇,因此,讓我們說在一組中是要顯示先補充,然後問我是否在我的號碼中說我說沒有那麼下一組數字顯示(這次是第二組的原始)。 我無法弄清楚的是如何做到這一點......對於第一個問題,天線選擇之間的原始和補充& &然後做同樣的,但第二個問題等等,直到第五個問題。

+1

你能發表你已經寫好的代碼嗎? – 2010-02-11 19:23:14

+0

我不認爲你很清楚你想要做什麼。有沒有可能舉一個你期望的程序輸入和輸出的例子?我注意到你創建了一個叫做生成器的Random,但是不要在任何地方使用它。 – 2010-02-11 20:19:53

+0

這是功課嗎? – Pool 2010-02-11 20:32:04

回答

0

對於初學者來說,由於您正在創建java.util.Random的實例 - 實際上使用它怎麼樣呢?然後,由於您想要表示一組數字,請嘗試使用java.util.HashSet來表示這些數字。

你想用你的代碼實現什麼?我無法正視它的尾巴。嘗試使用有意義的變量名稱並將其分解爲更小的方法。