Rumah Java javaTutorial Java如何生成随机数

Java如何生成随机数

Jan 17, 2019 am 10:13 AM

Java生成随机数的方法:首先在程序类开始之前放入import语句;然后创建一个Random对象;最后从某个范围中挑选随机数即可。

Java如何生成随机数

本文操作环境:Windows7系统、Dell G3电脑、Java8.0版。

生成一系列随机数是不时出现的常见任务之一。在Java中,只需使用java.util.Random类即可实现。

与使用任何API 类一样,第一步是在程序类开始之前放入import语句:

 import java.util.Random;
Salin selepas log masuk

接下来,创建一个Random对象:

 Random rand = new Random();
Salin selepas log masuk
Salin selepas log masuk

Random对象为您提供了一个简单的随机数生成器。对象的方法提供了选择随机数的能力。例如,nextInt()和nextLong()方法将分别返回int和long数据类型的值(负数和正数)范围内的数字:

 Random rand = new Random();
for (int j=0;j < 5;j++)
{
  System.out.printf("%12d ",rand.nextInt());
  System.out.print(rand.nextLong());
  System.out.println();
}
Salin selepas log masuk

返回的数字将随机选择int和long值:

-1531072189 -1273932119090680678
1849305478  6088686658983485101
1043154343  6461973185931677018
1457591513  3914920476055359941
-1128970433 -7917790146686928828
Salin selepas log masuk

从某个范围中挑选随机数

通常,要生成的随机数需要来自某个范围(例如,包括1到40之间)。为此,nextInt()方法也可以接受int参数。它表示数字范围的上限。但是,上限数字不包括在可以选择的数字之一中。这可能听起来令人困惑,但nextInt()方法从零开始工作。例如:

 Random rand = new Random();
rand.nextInt(40);
Salin selepas log masuk

只会从0到39中选择一个随机数。要从以1开头的范围中进行选择,只需将1添加到nextInt()方法的结果中即可。例如,要选择1到40之间的数字,请在结果中添加一个:

 Random rand = new Random();
int pickedNumber = rand.nextInt(40) + 1;
Salin selepas log masuk

如果范围从一个更高的数字开始,您将需要:

减去上限数字的起始编号,然后加一。

将起始编号添加到nextInt()方法的结果中。

例如,要从5到35中选择一个数字,上限数字将为35-5 + 1 = 31,并且需要将5添加到结果中:

 Random rand = new Random();
int pickedNumber = rand.nextInt(31) + 5;
Salin selepas log masuk

随机类是多么随机?

我应该指出,Random类以确定的方式生成随机数。产生随机性的算法基于称为种子的数字。如果种子数已知,那么可以计算出将从算法中产生的数字。为了证明这一点,我将使用Neil Armstrong首次踏上月球之日的数字作为我的种子数(1969年7月20日):

 import java.util.Random;
public class RandomTest {;
  public static void main(String[] args) {
    Random rand = new Random(20071969);
    for (int j = 0; j
Salin selepas log masuk

无论谁运行此代码,生成的“随机”数字序列将是:

 3 0 3 0 7 9 8 2 2 5
Salin selepas log masuk

默认情况下,使用的种子编号由:

 Random rand = new Random();
Salin selepas log masuk
Salin selepas log masuk

是自1970年1月1日以来的当前时间(以毫秒为单位)。通常,这将为大多数目的产生足够随机的数字。但是,请注意,在同一毫秒内创建的两个随机数生成器将生成相同的随机数。

对任何必须具有安全随机数生成器的应用程序(例如,赌博程序)使用Random类时也要小心。可以根据应用程序运行的时间猜测种子数。通常,对于随机数绝对关键的应用程序,最好找到Random对象的替代方案。对于大多数只需要某个随机元素的应用程序(例如,棋盘游戏的骰子),它可以正常工作。

Atas ialah kandungan terperinci Java如何生成随机数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka? Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu? Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas? Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan? Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul? Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul? Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

See all articles