电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java兩種常用的隨機數生成方式(小白總結)

瀏覽:4日期:2022-08-22 17:45:37

人機交互過程中,當我們需要機器給我們反饋不確定的數字結果時,就會需要用到隨機數了,那么,在Java中,我們應當如何來生成并使用隨機數呢?

一、通過Random類來實現

Random類是JDK的java.util包中的一個工具類,該類可用于在指定范圍內產生隨機數字。考察一下Random類的兩種構造方法:無參構造和有參構造

Random(); 無參構造方法創建一個偽隨機數生成器。Random(long seed);有參構造方法使用一個long型的種子創建偽隨機數生成器。下面分別使用兩種方式創建Random對象來獲取10個0到100的隨機數

無參構造方式

public class demo1 { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } }

運行結果:

Java兩種常用的隨機數生成方式(小白總結)

這里總結一個應用random.nextInt()的式子:random.nextInt(n)+m,返回的是m到m+n-1之間的隨機數。比如random.nextInt(9)+1,得到就是1到10之間的某數,如果沒有n和m,那么就是生成一個隨機的int類型的值。當然除了int類型,也可以生成其他數字型的基本數據類型的隨機數,比如double、float、byte等等。

nextDouble()方法返回的是0.0到1.0之間的一個double類型的值 nextFloat()方法返回的是0.0到1.0之間的一個float類型的值

有參構造方式

public class demo1 { public static void main(String[] args) { Random random = new Random(); for (int i = 0; i < 10; i++) { System.out.println(random.nextInt(100)); } Random random1 = new Random(100); System.out.println('---------'); for(int i = 0 ;i<10;i++){ System.out.println(random1.nextInt(100)); } }

這里為了方便跟無參構造方法創建的隨機數生成器作比較,創建了兩個Random對象。

運行結果:

Java兩種常用的隨機數生成方式(小白總結)

再執行一次代碼的結果:

Java兩種常用的隨機數生成方式(小白總結)

怎么樣?是不是發現下面的有參構造生成的隨機數每次運行結果都是一樣的,而無參構造方法的random對象每次都能得到不同的隨機數。

這里的原因是:無參構造方法在創建Random對象時沒有傳入種子參數,程序會自動以當前時間為時間戳,于是每一次的運行結果都是不同的。而有參構造方法創建Random對象時傳入了種子參數,兩次運行時種子相同,實際上不管運行多少次,結果都是一樣的。

二、使用Math類的random方法

Java中的Math類也提供了一個生成隨機數的random方法。首先需要明確,Math.random()是隨機生成一個0.0到1.0之間的double類型的隨機數,這里包含0而不包含1。

常見的用法:

public class demo1 { public static void main(String[] args) { for (int i = 0; i < 3; i++) { System.out.println((int) (Math.random() * 10)); } }

Math.random()生成0到1之間的double數,乘以10就變成了0到10之間的double數,再轉成int型,這是我平時接觸比較多的用法(通常我們使用隨機數也是int類型的居多)。運行結果如下(3個0到10之間的整數):

Java兩種常用的隨機數生成方式(小白總結)

根據需要可以靈活使用random()方法:

(int)(Math.random()*n)生成大于等于0小于n的隨機數。 (int)(Math.randon()*n)+m生成大于等于m小于m+n的之間的隨機數。 (int)(Math.random()*(n-m)+m)生成從m到n范圍內的數,包含m不包含n。

另外,我們還可以用這種方式生成字符:

隨機生成a~z之間的字符(char)(‘a’+Math.random()*(‘z’-‘a’+1));

隨機生成cha1~cha2的字符(char)(cha1+Math.random()*(cha2-cha1+1));

小結

以上就是近期自己總結的兩種Java中生成隨機數的方法,實際上打開Math類中的random方法的源碼我們可以發現,這個方法就是直接調用Random類中的nextDouble方法來實現的。至于實際使用看個人愛好吧,比較推薦直接使用Math類的random方法,要記住的是,以上兩種方法生成的隨機數都是會重復的,如果有不能重復的需求,則需要添加其他操作了。

到此這篇關于Java兩種常用的隨機數生成方式(小白總結)的文章就介紹到這了,更多相關Java 隨機數生成內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
主站蜘蛛池模板: LED投光灯-工矿灯-led路灯头-工业灯具 - 山东普瑞斯照明科技有限公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 热处理温控箱,热处理控制箱厂家-吴江市兴达电热设备厂 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 半自动预灌装机,卡式瓶灌装机,注射器灌装机,给药器灌装机,大输液灌装机,西林瓶灌装机-长沙一星制药机械有限公司 | 酒糟烘干机-豆渣烘干机-薯渣烘干机-糟渣烘干设备厂家-焦作市真节能环保设备科技有限公司 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 国际高中-国际学校-一站式择校服务-远播国际教育 | 矿用履带式平板车|探水钻机|气动架柱式钻机|架柱式液压回转钻机|履带式钻机-启睿探水钻机厂家 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | LHH药品稳定性试验箱-BPS系列恒温恒湿箱-意大利超低温冰箱-上海一恒科学仪器有限公司 | 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 碳纤维复合材料制品生产定制工厂订制厂家-凯夫拉凯芙拉碳纤维手机壳套-碳纤维雪茄盒外壳套-深圳市润大世纪新材料科技有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 吲哚菁绿衍生物-酶底物法大肠菌群检测试剂-北京和信同通科技发展有限公司 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 横河变送器-横河压力变送器-EJA变送器-EJA压力变送器-「泉蕴仪表」 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 悬浮拼装地板_幼儿园_篮球场_悬浮拼接地板-山东悬浮拼装地板厂家 | 昆明化妆培训-纹绣美甲-美容美牙培训-昆明博澜培训学校 | 手机游戏_热门软件app下载_好玩的安卓游戏下载基地-吾爱下载站 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 交联度测试仪-湿漏电流测试仪-双85恒温恒湿试验箱-常州市科迈实验仪器有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 酒店厨房设计_中央厨房设计_北京商用厨房设计公司-奇能商厨 |