从两个循环中选择的随机类的Java算法

时间:2010-02-11 19:19:13

标签: java random

我必须让我的程序在两组数字(原始和补充)之间选择randomely但是有5组这个循环。我如何指定程序在每组中的两个(原始和补充)之间选择randomely? 好的,所以这就是我到目前为止......

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

    }
}
好吧,我应该猜测你想要的数字在0到31之间。现在我被要求选择5套补充(我使用二进制来提出套装)。现在即使我总共有10集,我只想显示5(这是随机进场的地方)我应该让它在补充和原始randomely之间做出选择所以让我们说在一组中将会显示先补,然后问我,我的号码是否在说我说没有那么下一组号码显示(这次是第二组的原件)。 我无法弄清楚的是如何做到这一点...第一个问题是在原始和补充之间选择&amp;&amp;然后做同样的事情但是针对第二个问题,直到第五个问题为止。

1 个答案:

答案 0 :(得分:0)

对于初学者,既然您正在创建java.util.Random的实例 - 实际上使用怎么样?然后,由于您想要表示数字集,请尝试使用java.util.HashSet来表示这些数字。

您希望使用代码实现什么目标?我无法做出头脑或尾巴。尝试使用有意义的变量名称并将其分解为更小的方法。