`

Java的Random实例

    博客分类:
  • Java
阅读更多

这两天出去玩,经常看大有各种**的小游戏,就想到以前朋友说的一个事儿:游侠装备**的时候如何保证玩家抽到的好装备较少。其实这个思路还挺简单的:生成一个随机数,判断若该随机数>6或7什么的,就有好装备否则就是不好的。于是就琢磨了下,写个小例子玩玩。

 

说明:假设总共**10次,好东西3个,随机数大于6的时候才能有好东西。因此先声明静态变量:

private static int goosNum = 3;//声明10次抽到好东西的数量
private static int boundNum=6;//界限,若是大于6则为好东西,否则为谢谢参与
private static int count=0;//用来计数抽到好东西的次数
private static int totalCount=10;//总的次数
private static int curCount=0;//目前已有次数(规定必须有多少个好东西时用)

1、10次中最多有3次抽到好东西的机会:

public static int getRandom() {
	Random r = new Random();// 实例化
	int num = 0;// 用来存放产生的随机数
	num = r.nextInt(10);// 随机生成一个介于0-10之间的整数
	if(count<goosNum) {// 说明机会还没有用完,那么可以随便抽取
		if(num>boundNum) {//若大于6,那么是好东西,需要记录一下
			count++;
		}
	}else{//说明好机会已经用完,那么随机数必须小于boundNum
		num = r.nextInt(boundNum);// 随机生成一个介于0-boundNum之间的整数
	}
	return num;
}

测试:

public static void main(String[] args) {
	//连续抽取10
	int randomNum = 0;
	for(int i=1;i<=totalCount;i++){
		randomNum = getRandom();
		if(randomNum<=boundNum){
			System.out.println("第"+i+"次:谢谢参与!");
		}else{
			System.out.println("第"+i+"次:恭喜恭喜!");
		}
	}
	System.out.println("抽到好东西的次数:"+count+"次");
}

这个方法可能抽到3次好东西,可能2次,可以1次,也可能没有。

 

2、10次中必须有3次抽到好东西的机会,也就是所有的机会中一定会有三次抽到好东西:

public static int getRandom2() {
	Random r = new Random();// 实例化
	int num = 0;// 用来存放产生的随机数
	num = r.nextInt(10);// 随机生成一个介于0-10之间的整数
	if(count<goosNum) {// 说明机会还没有用完,那么可以随便抽取
		if(num>boundNum) {//若大于6,那么是好东西,需要记录一下
			count++;
		}else{//避免连续两次出现好的好东西
			//若是剩下的机会小于或等于还剩下抽到好东西的次数,为确保有指定次数的机会此处务必让生产大于6的随机数
			if((totalCount-curCount)<=goosNum){
				int num2 = 0;
				while(num2<=boundNum){
					num2 = r.nextInt(10);// 随机生成一个介于0-10之间的整数
					if(num2>boundNum){
						num=num2;
						break;
					}
				}
				count++;
			}
		}
	}else{//说明好机会已经用完,那么随机数必须小于boundNum
		num = r.nextInt(boundNum);// 随机生成一个介于0-boundNum之间的整数
	}
	curCount ++;//每抽一次自增1
	return num;
}

3、所有的机会中只有前三次能抽到好东西,往后的其次都是不好的:

public static int getRandom3() {
	Random r = new Random();// 实例化
	int num = 0;// 用来存放产生的随机数
	num = r.nextInt(10);// 随机生成一个介于0-10之间的整数
	if(count<goosNum) {//说明机会还没有用完,那么必须为大于6的数字
		int num2 = 0;
		while(count<goosNum){//已抽到次数<总的好东西的数量
			num2 = r.nextInt(10);// 随机生成一个介于0-10之间的整数
			if(num2>boundNum){
				num=num2;
				count++;
				break;
			}
		}
	}else{//好东西的数量已经满了,那么随机数必须小于boundNum
		num = r.nextInt(boundNum);// 随机生成一个介于0-boundNum之间的整数
	}
	return num;
}

PS:文章中的**指定的是什么,大家就猜吧。因为**是敏感词汇我要是打出来,会被扣分、封号删文。也可能是标题中有这个敏感字眼,我可是不敢再试了。

再PS:文中的**代表抽 奖,管理员说加个空格可以避免因敏感词汇被封号的问题,我这是试下!希望不要封号哈!

再再PS:还是没能经住诱惑试了下标题是否可以用加空格的敏感词汇,结果果然不负众望-成功被封号,哭

 

分享到:
评论

相关推荐

    Java基础之Random随机数.docx

    此文档以一个小的实例讲解了java随机数random的使用,在java当中随机数的使用率较高,所以需要熟练掌握随机数的使用

    java范例开发大全

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    实例讲解Java中random.nextInt()与Math.random()的基础用法

    今天小编就为大家分享一篇关于实例讲解Java中random.nextInt()与Math.random()的基础用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    java扔骰子实例

    java扔骰子实例Scanner sc=new Scanner(System.in); //标准输入设备 Random rd = new Random(); //随机数对象 int computerSUM=0; int userSUM=0; int sum = 500; //用户总分 int pay = 0; //用户押分 int[]...

    Java使用Random类生成随机数示例

    主要介绍了Java使用Random类生成随机数,结合实例形式分析了java基于Random类生成随机数与遍历输出相关操作技巧,需要的朋友可以参考下

    java随机数

    虽然Java没有提供一个很好的方法来管理java.util.Random的单一实例。但是,期待已久的Java 7提供了一种新的方式来产生随机数: 1.java.util.concurrent.ThreadLocalRandom.current().nextInt(10) 这个新的API综合了...

    java 彩色验证码实例

    r2 = random.nextInt(7); //生成0到7之间的随机数 } else { r2 = random.nextInt(16); //生成0到16之间的随机数 } String str_r2 = rBase[r2]; // 生成第1位的位码 int r3 = random.nextInt(6) + 10; //生成...

    java编程基础,应用与实例

    15.2 java.util.Random类 234 15.3 java.util.Arrays类 236 15.4 java.util.StringTokenizer类 238 15.5 java.util.Calendar类 240 15.6 巩固练习 242 第16章 AWT程序设计 244 16.1 java.awt....

    Java范例开发大全(全书源程序)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 关系运算符 13 实例7 逻辑...

    java范例开发大全源代码

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12 ...

    Java范例开发大全 (源程序)

     实例1 开发第一个Java程序 7  第2章 Java基础类型与运算符(教学视频:39分钟) 9  2.1 基础类型 9  实例2 自动提升 9  实例3 自动转换 10  实例4 常用基础类型之强制转换 11  2.2 运算符 12  实例5...

    java范例开发大全(pdf&源码)

    实例1 开发第一个Java程序 7 第2章 Java基础类型与运算符(教学视频:39分钟) 9 2.1 基础类型 9 实例2 自动提升 9 实例3 自动转换 10 实例4 常用基础类型之强制转换 11 2.2 运算符 12 实例5 算术运算符 12 实例6 ...

    Java开发详解.zip

    031108_【第11章:Java常用类库】_Math与Random类笔记.pdf 031109_【第11章:Java常用类库】_NumberFormat笔记.pdf 031110_【第11章:Java常用类库】_大数操作(BigIntger、BigDecimal)笔记.pdf 031111_【第11章:...

    javaio包ppt教程以及多个实例

    javaio包ppt教程以及多个实例: 使用Date 类获取系统当前时间、 使用 Random 类的对象生成随机数等等

    Java2游戏编程.pdf

    4.3.2 java.util.Random 4.3.3 Java2集合框架 4.4 总结 4.5 练习 第2篇 Java 2-D图像开发和抽象Window工具包 第5章 Applet基础 5.1 什么是Java applet 5.2 Applet和Application的比较 5.3 Applet的组成和生命周期 ...

    Java实现随机森林算法

    在Java中实现随机森林算法通常需要使用机器学习库,比如Weka或者Apache Spark的MLlib。下面我将展示一个使用Weka库的简单示例,来说明如何使用随机森林算法对数据进行分类。 首先,你需要在项目中引入Weka库。如果...

    Java实验的答案源程序

    函数定义10对(x,y)值,由此创建的Point类实例存入一个数组中,按与原点(0,0)的距离由小到大的顺序输 出所有的点及到原点的距离。 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火 柴...

    Java优化编程(第2版)

    Java优化编程(第2版)通过丰富、完整、富有代表性的实例,展示了如何提升Java应用性能,并且给出了优化前与优化后的Java应用程序的性能差别,以实际的实例与数字告诉你,为什么不可以这么做,应该怎么做,深入分析...

    java 随机数.docx

    在Java中,生成随机数可以使用java.util.Random类或java.util.concurrent.ThreadLocalRandom类。这两个类提供了生成伪...创建Random类的实例:Random random = new Random(); 生成不同类型的随机数: 生成整数随机数:

    Java制作跳动动画的阴影文字.rar

    Java阴影文字、跳动文字动画实例,附完整源码,跳动文字,建立一个实现文字运动的线程,定义字体高度,运动速度和基线,设置文字颜色、背景颜色与阴影颜色,实现跳动的Image对象和Graphics对象等,具体 请参见源代码...

Global site tag (gtag.js) - Google Analytics