You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何指定种子的Random类nextInt()输出始终固定?

为什么new Random(10).nextInt()每次输出都是-1157793070?
  • Java里的Random是伪随机数生成器,它的随机数序列完全由初始化时的种子决定。你每次都用固定的种子10创建实例,相当于把生成器重置到了同一个初始状态,所以生成的第一个随机数必然是固定的-1157793070。
  • 伪随机的核心逻辑是:基于种子通过数学算法生成可预测的序列,只要种子不变,整个序列就不会变。比如你连续调用几次nextInt(),每次得到的后续数字也都是固定的,示例代码如下:
    Random r = new Random(10);
    System.out.println(r.nextInt()); // 输出-1157793070
    System.out.println(r.nextInt()); // 输出1913984760
    System.out.println(r.nextInt()); // 输出1107254586
    
    不管运行多少次这段代码,输出结果都会完全一致。
  • 如果想要每次运行得到不同的随机数,别指定固定种子,直接用无参的new Random()即可,它会自动用系统时间等动态值作为种子,保证每次生成器的初始状态不一样。

内容的提问来源于stack exchange,提问作者HellishHeat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 23:03:14