一、Random类的认识
Random是随机的意思 。
Random类是java.until下的一个根据随机算法的起源数字进行一些变化,从而得到随机数字的方法。
随机算法的起源数字被成为种子数(seed)。
虽然Random类产生的数字是随机的,但在相同种子数(seed)下的相同次数产生的随机数是相同的(伪随机)。
二、Random对象的生成
Random中共有两种构造方法
1、public Random()
此构造方法是以系统自身的时间为种子数来构造Random对象。
2、public Random(long seed)
此构造方法可以自己来选定具体的种子来构造Random对象。
三、Random类的简单使用
package cn.itcast.demo1;
import java.util.Random;//使用时需要先导包
import java.util.Scanner;
public class RAndom {
public static void main(String[] args) {
Random r = new Random();//以系统自身时间为种子数
int i = r.nextInt();
System.out.println("i"+i);
Scanner sc =new Scanner(System.in);
int j = sc.nextInt();
Random r2 = new Random(j);//自定义种子数
Random r3 = new Random(j);//这里是为了验证上方的注意事项:Random类是伪随机,相同种子数相同次数产生的随机数相同
int num = r2.nextInt();
int num2 = r3.nextInt();
System.out.println("num"+num);
System.out.println("num2"+num2);
}
}
输出
i194711934
2
num-1154715079
num2-1154715079
四、常用方法
random.nextInt() | 返回值为整数,范围是int类型范围 |
random.nextLong() | 返回值为长整型,范围是long类型的范围 |
random.nextFloat() | 返回值为小数,范围是[0,0.1] |
random.nextDouble() | 返回值为小数,范围是[0,0.1] |
random.nextBoolean() | 返回值为boolean值,true和false概率相同 |
radom.nextGaussian() | 返回值为呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0 |
五、简单应用
需求:设计一个密码生成器,可以随机生成4位数字字母(包括大小写)混合的动态密码。
分析:先找一个字符数组pardStore将大小写字母和数字都放进去(数组长度为62),用一个Random随机一个数来随机每个密码
代码演示:
package cn.itcast.demo1;
import java.util.Random;
import java.util.Scanner;
public class RAndom {
public static void main(String[] args) {
char [] pardStore = new char[62];
for (int i = 0; i <26 ; i++) {
pardStore [i] = (char)('A'+i);
}
for (int i = 26; i <52 ; i++) {
pardStore [i] = (char)('a'+(i-26));
}
for (int i = 52; i <62 ; i++) {
pardStore [i] = (char)('a'+(i-52));
}
Scanner sc = new Scanner(System.in);
int seed = sc.nextInt();
Random r = new Random(seed);
for (int i = 0; i < 4; i++) {
int n = r.nextInt(62);
System.out.print(pardStore[n]);
}
}
}
相关文章
暂无评论...