cari

Rumah  >  Soal Jawab  >  teks badan

java 生成随机数

Random 类的实例 random

random.doubles(1, var1, var2  ).findFirst().orElse(0);

貌似只能生成 [var1, var2) 的随机数(左闭右开),
我想生成[var1, var2](左闭右闭)的该怎么写?

迷茫迷茫2802 hari yang lalu814

membalas semua(1)saya akan balas

  • PHPz

    PHPz2017-04-18 09:51:20

    Penyelesaian:
    random.doubles(1, var1, var2 + Double.MIN_VALUE).findFirst().orElse(0);

    Double boleh mewakili terlalu banyak tempat perpuluhan, jadi dari segi kebarangkalian, peluang untuk menjana var2 secara rawak adalah terlalu kecil, jadi saya cadangkan anda mengabaikannya. Jika anda hanya mengambil bilangan tempat perpuluhan yang tetap, seperti 2 tempat perpuluhan, anda boleh melakukan ini:

    // 取[1.20, 1.30]
    long n = random.longs(1, 120, 130 + 1).findFirst().orElse(0);
    // 将n的小数点左移两位

    balas
    0
  • Batalbalas