java產生隨機數,java產生隨機數的代碼

本文目錄一覽:

java如何產生1-8的整數隨機數?

(int)(Math.random()*8)+1

或者

Random r =new Random(100);

System.out.println(r.nextInt(8)+1);

Java產生隨機數的兩種方式

1、通過Math.random()方法返回一個0到1之間的double值。 

2、通過Random類來產生一個隨機數,這個是專業的Random工具類,功能強大。

Math.random()方法

Math.random()方法是 Java 的一個靜態方法,返回一個0到1之間,前閉後開區間的double值。

(int)(Math.random()*10) 返回0到9的隨機整數。 

(int)(Math.random()*n) 返回0到n的隨機整數。 

(int)(Math.random()*100)+1 返回1到100之間的隨機整數,前面返回0到99之間的隨機數,加1就成了1到100之間的隨機數。

Random類

Random 類是 Java 的 util 包中的一個類。

一、Random類使用說明

Random類使用的根本策略是分帶種子和不帶種子的Random的實例。 

通俗說,兩者的區別是:帶種子的,每次運行生成的結果都是一樣的。 

不帶種子的,每次運行生成的都是隨機的,沒有規律可言。

創建不帶種子的Random對象 

Random random = new Random(); 

使用一個和當前系統時間對應的相對時間有關的數字作為種子數。

創建帶種子的Random對象有兩種方法: 

1) Random random = new Random(10); 

2) Random random = new Random();random.setSeed(10); 

種子的作用是什麼?

種子就是產生隨機數的第一次使用值,機制是通過一個函數,將這個種子的值轉化為隨機數空間中的某一個點上,並且產生的隨機數均勻的散布在空間中。以後產生的隨機數都與前一個隨機數有關。 

舉例:

Random r =new Random(100);

System.out.println(r.nextInt(20)); 

100是種子,r.nextInt(20)中的20是隨機數的上限,產生的隨機數為0-20的整數,不包括20,種子數只是隨機演算法的起源數字,和生成的隨機數字的區間沒有任何關係。 

初始化時100並沒有起直接作用(注意:不是沒有起作用)。

java如何生成隨機數?

可以先通過random方法生成一個隨機數,然後將結果乘以100,然後再利用int方法進行轉換,就可以得到一個0到99的隨機整數。

如何在java中產生隨機數?

在j2se里我們可以使用Math.random()方法來產生一個隨機數,這個產生的隨機數是0-1之間的一個double,我們可以把他乘以一定的數,比如說乘以100,他就是個100以內的隨機,這個在j2me中沒有。

在java.util這個包裡面提供了一個Random的類,我們可以新建一個Random的對象來產生隨機數,他可以產生隨機整數、隨機float、隨機double,隨機long,這個也是我們在j2me的程序里經常用的一個取隨機數的方法。

在我們的System類中有一個currentTimeMillis()方法,這個方法返回一個從1970年1月1號0點0分0秒到目前的一個毫秒數,返回類型是long,我們可以拿他作為一個隨機數,我們可以拿他對一些數取模,就可以把他限制在一個範圍之內。

具體編程方法摘要:

Random()

創建一個新的隨機數生成器。

Random(long seed)

使用單個 long 種子創建一個新隨機數生成器: public Random(long seed) { setSeed(seed); } next

方法使用它來保存隨機數生成器的狀態。

protected int next(int bits)

生成下一個偽隨機數。

boolean nextBoolean()

返回下一個偽隨機數,它是從此隨機數生成器的序列中取出的、均勻分布的 boolean 值。

void nextBytes(byte[] bytes)

生成隨機位元組並將其置於用戶提供的位元組數組中。

double nextDouble()

返回下一個偽隨機數,它是從此隨機數生成器的序列中取出的、在 0.0 和 1.0之間均勻分布的 double 值。

float nextFloat()

返回下一個偽隨機數,它是從此隨機數生成器的序列中取出的、在 0.0 和 1.0 之間均勻分布的 float 值。

double nextGaussian()

返回下一個偽隨機數,它是從此隨機數生成器的序列中取出的、呈高斯(「正常地」)分布的 double 值,其平均值是 0.0,標準偏差是 1.0。

int nextInt()

返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分布的 int 值。

int nextInt(int n)

返回一個偽隨機數,它是從此隨機數生成器的序列中取出的、在 0(包括)和指定值(不包括)之間均勻分布的 int值。

long nextLong()

返回下一個偽隨機數,它是從此隨機數生成器的序列中取出的、均勻分布的 long 值。

void setSeed(long seed)

使用單個 long 種子設置此隨機數生成器的種子。

java如何產生1-10隨機數

java代碼方法一如下:

int random=(int)(Math.random()*10+1)

java代碼方法二如下:

package bdqn_Empy;

import java.util.Random;

public class Text {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int a=0;

Random b=new Random();

a=b.nextInt(101);

System.out.println(a);

}

}

擴展資料:

可以先通過 random方法生成一個隨機數,然後將結果乘以10。此時產生的隨機數字即為大於等於0小於10的數字。

然後再利用nt方法進行轉換它會去掉小數掉後面的數字即只獲取整數部分,不是四捨五入)。最後即可獲取一個0到9的整數型隨機數字。其實現方法很簡單,就是對原有的 grandom方法按照如下的格式進行變型:(int( Math. Random0*10)即可。

其實我們還可以對這個方法進行擴展,讓其產生任意範圍內的隨機數。至需要將這個10換成n即可,如改為( int(Math. Random0n)。此時應用程序就會產生一個大於等於0小與n之間的隨機數。

如將n設置為5,那麼其就會產生一個0到5之間的整數型的隨機數。如果將這個寫成一個帶參數的方法,那麼只要用戶輸入需要生成隨機數的最大值,就可以讓這個方法來生成制定範圍的隨機數。

java中隨機數怎麼生成

java的三種隨機數生成方式

隨機數的產生在一些代碼中很常用,也是我們必須要掌握的。而java中產生隨機數的方法主要有三種:

第一種:new Random()

第二種:Math.random()

第三種:currentTimeMillis()

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237029.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:03
下一篇 2024-12-12 12:03

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29

發表回復

登錄後才能評論