面对对象 - java这段代码为什么不随机的

 bj韩式尕伙 发布于 2022-10-29 13:15

在看Thinking in Java,有一段实在没看懂

package com.company.allAreTheObjective.Symbol;
import java.util.*;

/**
 * Created by Francis on 12/05/2016.
 */
public class VowelsAndConsonants {
    public static void main(String args[]){
        Random rand = new Random(47);
        for (int i = 0; i < 100; i++){
            int c = rand.nextInt(26) + 'a';
            System.out.print((char)c+","+ c +":");
            switch(c){
                case 'u' : System.out.println("vowel");break;
                case 'w' : System.out.println("Sometimes a vowel");break;
                default  : System.out.println("constant");
            }
        }
    }
}

这一段为什么输出恒为
y,121:constant
n,110:constant
z,122:constant
b,98:constant
r,114:constant
n,110:constant
y,121:constant

3 个回答
  • 相同种子数的Random对象,相同次数生成的随机数字是完全相同的.
    修改成Random rand = new Random()就好。

    2022-11-12 01:46 回答
  • new Random(47)改成new Random()就好了。

    计算机产生的随机数都是伪随机数,只要给的初始化种子一样,生成的随机数序列就是一样的。

    2022-11-12 01:46 回答

  • 程序产生的都是伪随机数,你的随机数种子固定为47,每次生成的当然都一样,想要不一样可以把种子改成时间戳之类的

    2022-11-12 01:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有