



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、JAVA中生成随机数的方式 1、在j2se中使用Math.random()令系统随机选取一个01之间的double类型小数,将其乘以一个数,比如25,就能得到一个025范围内的随机数,这个在j2me中没有;Java代码1. intrandomNumber=(int)Math.round(Math.random()*(max-min)+min); 2、在System类中有一个currentTimeMillis()方法,这个方法返回从1970年1月1号0点0分0秒到目前的一个long型的毫秒数,可作为一个随机数,还可以将其对某些数取模,就能限制随机数的范围;此方式在循环中同时产生多个随机数时,会是相同的值,有一定的局限性! Java代码1. longrandomNum=System.currentTimeMillis();2. intrandomNumber=(int)randomNum%(max-min)+min; 3、使用java.util.Random类来产生一个随机数发生器,这个也是我们在j2me的程序里经常用的一个取随机数的方法。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。 如果两个Random对象使用相同的种子(比如都是25),并且以相同的顺序调用相同的函数,那它们返回值完全相同。Java代码1. Randomrandom=newRandom();2. intrandomNumber=random.nextInt(max)%(max-min+1)+min;二、随机给定范围内N个不重复的数 1、方法一:最简单最易理解的两重循环去重Java代码1. /*2. *随机指定范围内N个不重复的数3. *最简单最基本的方法4. *parammin指定范围最小值5. *parammax指定范围最大值6. *paramn随机数个数7. */8. publicstaticintrandomCommon(intmin,intmax,intn)9. if(n(max-min+1)|maxmin)10. returnnull;11. 12. intresult=newintn;13. intcount=0;14. while(countn)15. intnum=(int)(Math.random()*(max-min)+min;16. booleanflag=true;17. for(intj=0;jn;j+)18. if(num=resultj)19. flag=false;20. break;21. 22. 23. if(flag)24. resultcount=num;25. count+;26. 27. 28. returnresult;29. 2、方法二:利用HashSet的特征,只能存放不同的值Java代码1. /*2. *随机指定范围内N个不重复的数3. *利用HashSet的特征,只能存放不同的值4. *parammin指定范围最小值5. *parammax指定范围最大值6. *paramn随机数个数7. *paramHashSetset随机数结果集8. */9. publicstaticvoidrandomSet(intmin,intmax,intn,HashSetset)10. if(n(max-min+1)|maxmin)11. return;12. 13. for(inti=0;in;i+)14. /调用Math.random()方法15. intnum=(int)(Math.random()*(max-min)+min;16. set.add(num);/将不同的数存入HashSet中17. 18. intsetSize=set.size();19. /如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小20. if(setSizen)21. randomSet(min,max,n-setSize,set);/递归22. 23. 3、方法三:排除已随机到的数Java代码1. /*2. *随机指定范围内N个不重复的数3. *在初始化的无重复待选数组中随机产生一个数放入结果中,4. *将待选数组被随机到的数,用待选数组(len-1)下标对应的数替换5. *然后从len-2里随机产生下一个随机数,如此类推6. *parammax指定范围最大值7. *parammin指定范围最小值8. *paramn随机数个数9. *returnint随机数结果集10. */11. publicstaticintrandomArray(intmin,intmax,intn)12. intlen=max-min+1;13. 14. if(maxlen)15. returnnull;16. 17. 18. /初始化给定范围的待选数组19. intsource=newintlen;20. for(inti=min;imin+len;i+)21. sourcei-min=i;22. 23. 24. intresult=newintn;25. Randomrd=newRandom();26. intindex=0;27. for(inti=0;iresult.length;i+)28. /待选数组0到(len-2)随机一个下标29. index=Math.abs(rd.nextInt()%len-);30. /将随机到的数放入结果集31. resulti=sourceindex;32. /将待选数组中被随机到的数,用待选数组(len-1)下标对应的数替换33. sourceindex=sourcelen;34. 35. returnresult;36. 调用实例:Java代码1. publicstaticvoidmain(Stringargs)2. intreult1=randomCommon(20,50,10);3. for(inti:reult1)4. System.out.println(i);5. 6. 7. intreult2=randomArray(20,50,10);8. for(inti:re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民法学总论课件
- 笔译考试三级真题及答案
- 新质生产力包含半导体么
- 社区经济与新质生产力
- 新质生产力内涵解读
- 《统计学-SPSS和Excel实现》(第9版)课件 第1章 统计、数据和计算机
- 交叉学科:新质生产力的创新源泉
- 哪些行业是新质生产力的产物
- 民族民间舞蹈课件
- 医护关系矛盾化解
- 2025-2030中国纳米气泡发生器行业市场发展趋势与前景展望战略研究报告
- (高清版)DB11∕T2279-2024社会单位消防安全评估规范
- 语文-云南省师范大学附属中学2025届高三下学期开学考试试题和答案
- 北京一年级数学试卷
- 低压电工(特种作业)取证近年考试真题(300题)
- 养老院老人衣物洗涤保养制度
- UL2775标准中文版-2019气溶胶灭火器UL中文版标准
- 工程进度责任状(3篇)
- 工具模型-尤里奇2021年版新HR胜任力
- 华中师大版八年级全一册心理健康 1.别让时间悄悄溜走 教案
- 母婴保健技术服务人员考核审批表
评论
0/150
提交评论