1. 程式人生 > >java中隨機數的產生

java中隨機數的產生

1.System.currentTimeMillis()

獲取當前時間的毫秒的long型整數。

System.out.println(System.currentTimeMillis());

2.使用Random類

建立Random物件

(1)種子說明
種子就是產生隨機數的第一次使用值,機制是通過一個函式,將這個種子的值轉化為隨機數空間中的某一個點上,並且產生的隨機數均勻的散佈在空間中。以後產生的隨機數都與前一個隨機數有關。
(2)建立帶種子的Random物件,每次產生的隨機數相同

Random r = new Random(10);
或者
Random
r = new Random(); r.setSeed(10);

(3)建立不帶種子的Random物件,每次結果不一樣

Random r = new Random();
產生隨機數例項

(1)產生10個0-10範圍內的int型隨機數。

for (int i = 0; i < 10; i++) {
        System.out.println(r.nextInt(10));    //注意產生的隨機數不包括10
}  

(2)產生10個0-10內的float型隨機數

for (int i = 0; i < 10; i++) {
    System.out.println(r.nextFloat()*10
); //nextFloat方法產生0-1範圍內的隨機數 }
常用方法

1.protected int next(int bits):生成下一個偽隨機數。
2.boolean nextBoolean():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的boolean值。
3.void nextBytes(byte[] bytes):生成隨機位元組並將其置於使用者提供的 byte 陣列中。
4.double nextDouble():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.0和1.0之間均勻分佈的 double值。
5.float nextFloat():返回下一個偽隨機數,它是取自此隨機數生成器序列的、在0.0和1.0之間均勻分佈float值。
6.int nextInt():返回下一個偽隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。
7.int nextInt(int n):返回一個偽隨機數,它是取自此隨機數生成器序列的、在(包括和指定值(不包括)之間均勻分佈的int值。
8.long nextLong():返回下一個偽隨機數,它是取自此隨機數生成器序列的均勻分佈的 long 值。
9.void setSeed(long seed):使用單個 long 種子設定此隨機數生成器的種子。

3.使用Math.random()

Math.random()返回的[0,1)之間的double型別的隨機數。

例項

(1)產生10個0-4之間的隨機整數

for (int i = 0; i < 10; i++) {
    System.out.println((int)(Math.random()*5));
}

(2)返回10個1-10之間的隨機整數

for (int i = 0; i < 10; i++) {
    System.out.println((int)(Math.random()*10)+1);
}

相關推薦

java隨機數產生

1.System.currentTimeMillis() 獲取當前時間的毫秒的long型整數。 System.out.println(System.currentTimeMillis()); 2.使用Random類 建立Random物件 (1)種子

lua 隨機數產生

需要 不重復 nbsp rand 2個 種子 每次 函數 接收 需要用到兩個函數: (1)math.randomseed(N): 接收一個整數N作為隨機序列種子 (2)math.random([n, [m]]): 這個函數有三種用法,分別是不跟參數,此時產生(0,1)之間

java物件產生初始化過程

以前面試的時候,很多公司的筆試題中有關new一個物件有關一系列初始化的過程的選擇題目。請看下面的題目。 class Parent { static { System.out.println("---static Parnet---"); } public Parent() {

java隨機數Random和ThreadLocalRandom()用法與區別

package com.test; import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class M1001{ public static v

Java利用Math.random()產生服從泊松分布的隨機數

感謝 java 分布 and 隨機數 離散 ability oss for 眾所周知。Java的Math.random()產生的是服從均勻分布的隨機數,可是其它分布的應用也相當廣泛,比如泊松分布和高斯分布(正態分布)。而這些分布Java沒有非常好的提供(高斯分布能夠

java產生隨機數的兩種方法

1.可以使用Java api中java.lang包中的Math類,其中Math.random()方法是一個可以產生[0.0,1.0]區間內的一個雙精度浮點數的方法 如: 產生一個100以內的整數:int x=(int)(Math.random()*100); 2.Random random =

Java利用Math.random()產生服從泊松分佈的隨機數

眾所周知,Java的Math.random()產生的是服從均勻分佈的隨機數,但是其他分佈的應用也相當廣泛,例如泊松分佈和高斯分佈(正態分佈),而這些分佈Java沒有很好的提供(高斯分佈可以利用Rand

Java產生隨機數的兩個方法

方法一、Math類有個random方法可以實現隨機數的生成。Math.random()返回的是:返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。在此基礎上我們修改下就能得到一定範圍的隨機數: (int)(Math.random()*10)返回0到9的隨

Java在特定區間產生隨機數

生成指定範圍內的隨機數 這個是最常用的技術之一。程式設計師希望通過隨機數的方式來處理眾多的業務邏輯,測試過程中也希望通過隨機數的方式生成包含大量數字的測試用例。問題往往類似於: 如何隨機生成 1~100 之間的隨機數,取值包含邊界值 1 和 100。 或者

java程序:產生隨機數

math random number answer temp import java.util.Scanner;public class MathGame {public static void main(String[] args){int number1=(int)( Math.ran

JavaRandom隨機數

java中一般有兩種隨機數,一個是Math中random()方法,一個是Random類。   一、Math.random() 隨即生成0<=x<1的小數。 例項:如何寫,生成隨機生成出0~100中的其中一個數呢?     Math.ran

C++如何產生隨機數

C++中沒有自帶的random函式,要實現隨機數的生成就需要使用rand()和srand()函式,不過,由於rand()的內部是用線性同餘法做的,所以生成的並不是真正的隨機數,而是在一定範圍內可看為隨機的偽隨機數。 ~Rand ~Srand ~通式 Rand 單

Java取某一個範圍的隨機數

一、取模操作public static void main(String[] args){for (int i = 1; i <= 20; i++){int j = i % 11;System.out.println(i + "%11的結果——" + j);}}1%11的結果——12%11的結果——23

c++怎麼產生0-1之間的隨機數

http://zhidao.baidu.com/question/688719686574659564.html #include <iostream> #include <time.h> using namespace std; double

在C語言如何產生隨機數

簡單的產生0~100隨機數的程式碼如下: #include<stdio.h> #include<time.h> void main() { int i=0,j=0;

隨機數產生函式rand,random,srand,srandom的一些知識

1、int rand()產生一個從0到最大整數之間的一個隨機數,但是每次程式啟動後產生的隨機數在時間順序上都是一樣的。 如: #include <stdio.h> #include <stdlib.h> int main(){ while(1)

java學習之產生隨機數的三種方式

  隨機數在實際中使用很廣泛,比如要隨即生成一個固定長度的字串、數字。或者隨即生成一個不定長度的數字、或者進行一個模擬的隨機選擇等等。Java提供了最基本的工具,可以幫助開發者來實現這一切。   一、Java隨機數的產生方式   在Java中,隨機數的概念從廣義上將,有三種。   1、通過Syste

C語言和java生成隨機數的原理和方法

C語言 一.函式 1:int rand(void) 該函式會產生一個[0,RAND_MAX]的偽隨機數,那什麼是偽隨機數? 相當於一個序列a1-an,第一次使用會返回a1, 第二次使用會返回a2….第n次返回an,這樣每次呼叫rand()都能產生一個不同

我是Java初學者:在Java宣告物件時由屬性拷貝而產生堆疊溢位錯誤的記錄

我在學習中發現當在執行這段程式碼時會出現堆疊溢位的錯誤; public class TestDemo {          public TestDemo testDemo = new TestDemo();          public TestDemo( ){    

C語言如何產生一個隨機數及其原理。

在C語言中,rand()函式可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公佈,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這