首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java生成3个随机数

Java生成3个随机数
EN

Stack Overflow用户
提问于 2015-09-13 16:46:45
回答 2查看 3.5K关注 0票数 0

如何给我的math.random一个参数,使我总是至少接收,但不超过3位?我目前正在社区学院上我的第一节编程课,这是一个用Java编写的小型彩票项目的作业。任何帮助或更深入的解释将是非常感谢的。谢谢!

代码语言:javascript
复制
//randomly generate 3 digit lottery number
    int lottery = (int)(Math.random() * 1000);

    System.out.println(lottery);

    int lotteryDigit1 = lottery / 100;
    int lotteryDigit2 = lottery / 10 % 10;
    int lotteryDigit3 = lottery % 10;

    System.out.println(lotteryDigit1 + " digit 1 ");
    System.out.println(lotteryDigit2 + " digit 2 ");
    System.out.println(lotteryDigit3 + " digit 3 ");

为了澄清我写这个程序的依据,下面是一个类似的程序,它为彩票生成"2“随机数。我的工作是修改它来创建3个随机数。

代码语言:javascript
复制
public static void main(String[] args) 
{

    //generate lottery number
    int lottery = (int)(Math.random() * 100);

    //prompt the user to enter a guess
    Scanner input = new Scanner (System.in);
    System.out.println("Enter your lottery pick (two digits): ");
    int guess = input.nextInt();

    //get digits from lottery
    int lotteryDigit1 = lottery / 10;
    int lotteryDigit2 = lottery % 10;

    //get digits from guess
    int guessDigit1 = guess / 10;
    int guessDigit2 = guess % 10;

    System.out.println("The lottery number is " + lottery);

    //check the guess
    if (guess == lottery)
        System.out.println("Exact match: you win $10,000");
    else if (guessDigit2 == lotteryDigit1 && guessDigit2 == lotteryDigit2)
            System.out.println("Match all digits: you win $3,000");
    else if (guessDigit1 == lotteryDigit1
            || guessDigit1 == lotteryDigit2
            || guessDigit2 == lotteryDigit1
            ||guessDigit2 == lotteryDigit2)
        System.out.println("Match one digit: you win $1,000");
    else
        System.out.println("Sorry, no match");






}

}

EN

回答 2

Stack Overflow用户

发布于 2015-09-13 16:51:26

使用:

代码语言:javascript
复制
int lottery = 100 + (int) (Math.random()*899);

用这一行来生成至少三位数的数字,我不知道你为什么要用彩票作为所有其他随机数的基础?如果你除以100,那么肯定得到的数字将小于3位数,模10将给我0-9,而不是3位数!

票数 0
EN

Stack Overflow用户

发布于 2015-09-13 16:58:45

您可以为随机数编写一个具有最小和最大界的方法。这两个界限都包括在内:

代码语言:javascript
复制
private void run() {
    int min = 100;
    int max = 999;
    int result = random(min, max);
    System.out.println(result);
}

private int random(int min, int max) {
    Random random = new Random();
    return min + random.nextInt(max - min + 1);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32552075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档