海岛奇兵水晶掉落率计算程序,海岛奇兵水晶掉落率怎么算的
package com.david.random;
import java.util.Random;
public class RandomCrystal {
public static void main(String[] args) {
for (int i = 0; i < 20; i++) {
// 100次攻击40个建筑物获得的水晶总数
int total = 0;
int buildings = 40;
int times = 100;
for (int j = 0; j < times; j++) {
total += getCrystalNum(buildings);
}
System.out.println(times + "次攻击" + buildings + "个建筑物获得的水晶总数:" + total);
}
}
/**
* @param buildings 建筑数量
* @return count 水晶数量(包括大,中,小水晶),和建筑数量有关
*/
public static int getCrystalNum(int buildings) {
if (buildings < 1) {
throw new IllegalArgumentException("参数错误:建筑至少要有一个大本!");
}
int count = 0;
Random random = new Random();
int randomValue = -1;
// 随机获取每个建筑掉落的水晶(包括大本),每个建筑掉落水晶的概率为2%
for (int i = 0; i < buildings; i++) {
randomValue = random.nextInt(100);
if (randomValue == 0 || randomValue == 1) {
count++;
}
}
// 随机获取大本掉落水晶,大本掉落水晶的概率为25%
randomValue = random.nextInt(4);
if (randomValue == 0) {
count++;
}
return count;
}
}
运行结果:
100次攻击40个建筑物获得的水晶总数:108
100次攻击40个建筑物获得的水晶总数:117
100次攻击40个建筑物获得的水晶总数:108
100次攻击40个建筑物获得的水晶总数:92
100次攻击40个建筑物获得的水晶总数:98
100次攻击40个建筑物获得的水晶总数:104
100次攻击40个建筑物获得的水晶总数:99
100次攻击40个建筑物获得的水晶总数:114
100次攻击40个建筑物获得的水晶总数:105
100次攻击40个建筑物获得的水晶总数:104
100次攻击40个建筑物获得的水晶总数:103
100次攻击40个建筑物获得的水晶总数:121
100次攻击40个建筑物获得的水晶总数:121
100次攻击40个建筑物获得的水晶总数:117
100次攻击40个建筑物获得的水晶总数:116
100次攻击40个建筑物获得的水晶总数:98
100次攻击40个建筑物获得的水晶总数:99
100次攻击40个建筑物获得的水晶总数:96
100次攻击40个建筑物获得的水晶总数:111
100次攻击40个建筑物获得的水晶总数:106
平均一次攻击获得一个水晶。
相信这个也不难看懂,而且还有注释
海岛奇兵专区地图:
全站视频汇总 | BOSS战视频合辑 | 抢资源视频合辑 | 其他海岛奇兵视频 |
全站阵型布局 | 防守阵型布局 | 进攻战术 | 资源岛阵型 |
更新/活动/新闻 | 大型综合攻略 | 数据资料查询 | 恐怖博士/恐怖阶段 |
PS;请充分利用右上角的搜索栏,搜索词越短,搜索结果越多!