java random一句话_Java的Random实例

这两天出去玩,经常看大有各种**的小游戏,就想到以前朋友说的一个事儿:游侠装备**的时候如何保证玩家抽到的好装备较少。其实这个思路还挺简单的:生成一个随机数,判断若该随机数>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

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

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

int num2 = 0;

while(count

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

ba36ea4d4f72068c91b6bcf14e830382.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值