博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游戏中发送道具奖励的概率算法
阅读量:6325 次
发布时间:2019-06-22

本文共 1442 字,大约阅读时间需要 4 分钟。

hot3.png

完成某个游戏关卡要发送奖励,而每种奖励都有一定的概率,相应的装备越好,概率就越低。

以下是一个简单的概率算法实例,仅供参考

public class RateAlgorithm {	public static void main(String[] args) {		int index0 = 0;		int index1 = 0;		int index2 = 0;		int index3 = 0;		// 获取道具的概率列表		double rateA[] = { 0.1, 0.2, 0.3, 0.4 };		for (int k = 0; k < 1000; k++) {			// int index = rateAlgor1(rateA);			int index = rateAlgor2(rateA);			if (index == 0) {				index0++;			} else if (index == 1) {				index1++;			} else if (index == 2) {				index2++;			} else if (index == 3) {				index3++;			}		}		System.out.println("index0=" + index0 + ",index1=" + index1				+ ",index2=" + index2 + ",index3=" + index3);	}	/**	 * 概率算法1	 * 	 * @param rateA	 *            概率列表	 * @return	 */	private static int rateAlgor1(double rateA[]) {		double random = new Random().nextDouble();		for (int i = 0; i < rateA.length; i++) {			if (random <= getRate(rateA, i)) {				return i;			}		}		return rateA.length;	}	private static double getRate(double rateA[], int index) {		double rate = 0;		for (int j = 0; j < rateA.length; j++) {			if (j <= index) {				rate += rateA[j];			}		}		return rate;	}	/**	 * 概率算法2	 * 	 * @param rateA	 *            概率列表	 * @return	 */	private static int rateAlgor2(double rateA[]) {		double random = new Random().nextDouble();		for (int i = 0; i < rateA.length; i++) {			if (random <= rateA[i]) {				return i;			}			random -= rateA[i];		}		return rateA.length;	}}

转载于:https://my.oschina.net/OutOfMemory/blog/224874

你可能感兴趣的文章
.Net 垃圾回收和大对象处理 内存碎片整理
查看>>
HiKey连接
查看>>
wget 参数大全
查看>>
使用Loadrunner进行文件的上传和下载
查看>>
Linux C 静态库(.a) 与 动态库(.so) 的详解
查看>>
JS函数
查看>>
sql语句分组/排序/计算总数/连接等sql语句书写
查看>>
MVC5 的MicrosoftOwinSecurity扩展插件——微信,QQ登录第三方源码
查看>>
分布式系统理论基础 - CAP
查看>>
mysql 用户管理和权限设置
查看>>
【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目
查看>>
[转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)...
查看>>
Numpy 的ndarray
查看>>
牛人博客 列表
查看>>
数据库连接池dataesoruce pool深入理解
查看>>
vuejs2.0使用Sortable.js实现的拖拽功能
查看>>
oracle多实例的启动与关闭
查看>>
码农生涯杂记_4
查看>>
利用jQuery设计横/纵向菜单
查看>>
unity游戏开发之NGUI的UISprite染色
查看>>