【问题标题】:Java algorithm for random class that chooses from two loops从两个循环中选择的随机类的 Java 算法
【发布时间】:2010-02-11 19:19:12
【问题描述】:

我必须让我的程序在两组数字(原始和补码)之间随机选择,但有 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;
        }

    }
}

好吧,我应该在 0 到 31 之间猜出你正在考虑的数字。现在我被要求选择 5 组及其补码(我使用二进制来计算这些组)。现在即使我总共有 10 套我只假设显示 5(这是随机发挥作用的地方)我应该让它随机地在补充和原始之间进行选择,所以让我们说在一组中会显示先补然后再问我的号码是不是在说我说没有然后下一组号码显示(这次是第二组的原版)。 我不知道该怎么做...第一个问题在原始问题和补语之间进行选择&&然后做同样的事情,但是对于第二个问题等等,直到第五个问题。

【问题讨论】:

  • 能把已经写好的代码贴出来吗?
  • 我不认为你想做什么很清楚。是否可以举例说明您期望程序的输入和输出是什么?我注意到您创建了一个名为 Random 的生成器,但不要在任何地方使用它。
  • 这是一个我必须做的实验室,但我只是想获得一些想法。这是我第一次上编程课。

标签: java random


【解决方案1】:

首先,既然您正在创建java.util.Random 的实例,那么实际使用它怎么样?然后,既然你想表示一组数字,请尝试使用java.util.HashSet 来表示这些。

您想用您的代码实现什么目标?我无法判断它的正面或反面。尝试使用有意义的变量名并将其分解为更小的方法。

【讨论】:

    猜你喜欢
    • 2019-11-23
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 2012-05-19
    • 2022-07-26
    相关资源
    最近更新 更多