一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java獲得指定區(qū)間數(shù)的方法

Java獲得指定區(qū)間數(shù)的方法

2019-12-19 13:36hitxueliang JAVA教程

這篇文章主要介紹了Java獲得指定區(qū)間數(shù)的方法,涉及java數(shù)值運算的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了Java獲得指定區(qū)間數(shù)的方法。分享給大家供大家參考。具體如下:

在編寫Java程序的時候很多時候都用到了隨機數(shù),但是一直都是用一次查一次,這次來一個總結(jié)吧,把Java中得隨機數(shù)的產(chǎn)生弄的清晰一些,以后就直接自己參考自己的這篇文章就好了。

Java中有兩個類可以產(chǎn)生隨機數(shù):

java.util.Random和java.Math.Random

Java實用工具類庫中的類java.util.Random提供了產(chǎn)生各種類型隨機數(shù)的方法。它可以產(chǎn)生int、long、float、double以 及Goussian等類型的隨機數(shù)。這也是它與java.lang.Math中的方法Random()最大的不同之處,后者只產(chǎn)生double型的隨機 數(shù)。
類Random中的方法十分簡單,它只有兩個構(gòu)造方法和六個普通方法。

構(gòu)造方法:

(1)public Random()

(2)public Random(long seed)

Random()使用當前時間即System.currentTimeMillis()作為發(fā)生器的種子,Random(long seed)使用指定的seed作為發(fā)生器的種子。

Java產(chǎn)生隨機數(shù)需要有一個基值seed,在第一種方法中基值缺省,則將系統(tǒng)時間作為seed。

普通方法:

(1)public synonronized void setSeed(long seed)

該方法是設(shè)定基值seed。

(2)public int nextInt()

該方法是產(chǎn)生一個整型隨機數(shù)。

(3)public long nextLong()

該方法是產(chǎn)生一個long型隨機數(shù)。

(4)public float nextFloat()

該方法是產(chǎn)生一個Float型隨機數(shù)。

(5)public double nextDouble()

該方法是產(chǎn)生一個Double型隨機數(shù)。

(6)public synchronized double nextGoussian()

該方法是產(chǎn)生一個double型的Goussian隨機數(shù)。

如果2個Random對象使用相同的種子(比如都是100),并且以相同的順序調(diào)用相同的函數(shù),那它們返回值完全相同。如下面代碼中兩個Random對象的輸出完全相同

指定范圍內(nèi)的隨機數(shù)

隨機數(shù)控制在某個范圍內(nèi),使用模數(shù)運算符%

?
1
2
3
4
5
6
7
8
9
import java.util.*;
 class TestRandom {
  public static void main(String[] args) {
   Random random = new Random();
   for(int i = 0; i < 10;i++) {
    System.out.println(Math.abs(random.nextInt())%10);
   }
  }
}

獲得的隨機數(shù)有正有負的,用Math.abs使獲取數(shù)據(jù)范圍為非負數(shù)
獲取指定范圍內(nèi)的不重復(fù)隨機數(shù)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.*;
class TestRandom {
  public static void main(String[] args) {
    int[] intRet = new int[6];
    int intRd = 0; //存放隨機數(shù)
    int count = 0; //記錄生成的隨機數(shù)個數(shù)
    int flag = 0; //是否已經(jīng)生成過標志
    while(count<6){
      Random rdm = new Random(System.currentTimeMillis());
      intRd = Math.abs(rdm.nextInt())%32+1;
      for(int i=0;i<count;i++){
       if(intRet[i]==intRd){
        flag = 1;
        break;
       }else{
        flag = 0;
       }
      }
      if(flag==0){
       intRet[count] = intRd;
       count++;
      }
   }
   for(int t=0;t<6;t++){
    System.out.println(t+"->"+intRet[t]);
   }
  }
}

也可以有nextFloat等等,各種基本類型都有
Math.random也可以
比如說你想要0-10之間的隨機數(shù)
你可以這樣寫:

復(fù)制代碼 代碼如下:
(int)(Math.random()*10);

 

JAVA產(chǎn)生指定范圍的隨機數(shù)

產(chǎn)生Min-Max之間的數(shù)字

?
1
2
Random random=new Random();
int top = random.nextInt(maxtop)%(maxtop-mintop+1) + mintop;

另一種實現(xiàn)原理:

?
1
2
3
4
Math.round(Math.random()*(Max-Min)+Min)
long Temp; //不能設(shè)定為int,必須設(shè)定為long
//產(chǎn)生1000到9999的隨機數(shù)
Temp=Math.round(Math.random()*8999+1000);

希望本文所述對大家的java程序設(shè)計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99久在线| 国产亚洲欧美日韩综合综合二区 | sss亚洲国产欧美一区二区 | julia ann全部在线hd | 亚洲欧美成人综合 | 日韩一区二区三区四区不卡 | 鸭子玩富婆流白浆视频 | 国产成人永久免费视 | 国产精品久久久久久久久免费hd | gay台湾无套男同志可播放 | 国产欧美一区二区三区免费看 | 美女扒下内裤让男人桶的图片 | 亚色九九九全国免费视频 | 欧美最猛性xxxxx动态图 | 欧美高清在线精品一区二区不卡 | 天天色影视综合网 | 午夜伦理yy44008影院 | 亚洲精品中文字幕久久久久久 | 娇女的呻吟亲女禁忌h16 | 2020韩国三级理论在线观看 | 麻豆网站在线免费观看 | 亚洲欧美日韩精品 | 视频一区二区三区在线观看 | 夫妻性生活一级黄色片 | 四虎永久免费地址 | 午夜第一页 | ai换脸造梦jennie | 午夜福利试看120秒体验区 | 四虎永久免费地址在线网站 | 成人网欧美亚洲影视图片 | 99精品国产美女福到在线不卡 | 好吊色视频988gao在线观看 | 丰满艳妇亲伦视频 | 男女爆操| 桃乃木香在线 | aa一级护士医生毛片 | 精品欧美一区二区三区四区 | 91精品啪在线观看国产日本 | 性柔术xxxhd 性派对videos18party | 精品久久久久久久久久香蕉 | 人人爱天天做夜夜爽88 |