2010-02-11 100 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来表示这些数字。

你想用你的代码实现什么?我无法正视它的尾巴。尝试使用有意义的变量名称并将其分解为更小的方法。