`
tangzhibin
  • 浏览: 20682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mock probability with lottery

 
阅读更多
public class TestLottery {
	
	static int BASE_RANDOM_NUM=1000;
  
	private static int getProbabilityIndex(final List<Double> probabilityList){
		Map<Integer,Double> mapRates= calculateBaseProbability(probabilityList);
		int randomProbability=RandomUtils.nextInt(BASE_RANDOM_NUM);
		Set<Entry<Integer, Double>>  sets=mapRates.entrySet();
		for(Entry<Integer, Double> entry:sets){
			if (entry.getValue() >= randomProbability && entry.getValue() <= BASE_RANDOM_NUM) {
				return entry.getKey();
			}
		}
		return -1;
	}
	
	
	private static Map<Integer,Double> calculateBaseProbability(final List<Double> probabilityList){
		Map<Integer,Double> mapRates=new HashMap<Integer, Double>();
		double sumProbability=0.0;
		int index=0;
		Iterator<Double> itor= probabilityList.iterator();
		while(itor.hasNext()){
			double probability=itor.next();
			if(probability>0){
				sumProbability+=probability;
				mapRates.put(index, sumProbability*BASE_RANDOM_NUM);
			}
			index++;
		}
		return mapRates;
	}
  
    
    public static List<Double> createDoubleList(){
    	List<Double> orignalRates=new ArrayList<Double>();
		orignalRates.add(0.0);
		orignalRates.add(0.0);
		orignalRates.add(0.6);
		orignalRates.add(0.3);
		orignalRates.add(0.1);
		return orignalRates;
    }
	
	public static void main(String[] args) {
		Map<Integer,Double> proMap=new HashMap<Integer, Double>();
		double sumCount=100000;
		List<Double> orignalRates=createDoubleList();
		for (double i = 0; i < sumCount; i++) {
			int index =getProbabilityIndex(orignalRates);
			if(proMap.containsKey(index)){
				proMap.put(index, proMap.get(index)+1.0);
			}else{
				proMap.put(index, 1.0);
			}
		}
		
		Set<Entry<Integer, Double>> setEntry=proMap.entrySet();
		for(Entry<Integer, Double> entry:setEntry){
			System.out.println( entry.getKey()+"("+entry.getValue()+")->rate:"+ entry.getValue()/sumCount);
		}
		
	}
}

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Instant Mock Testing with PowerMock.pdf

    Instant Mock Testing with PowerMock 7 Saying Hello World! (Simple) 8 Getting and installing PowerMock (Simple) 14 Mocking static methods (Simple) 22 Verifying method invocation (Simple) 28 Mocking ...

    基于python的mock测试数据练习

    1. `assert_called_once_with()`: 检查mock对象是否被调用一次,并且参数匹配。 ```python mock_obj.some_method.assert_called_once_with(arg1, arg2) ``` 2. `call_count`: 查看mock对象被调用的次数。 ```python ...

    mockServer,mock服务端

    MockServer 是一个强大的工具,主要用于在开发过程中模拟服务器行为,特别是在接口开发和测试阶段。它允许开发者在没有实际后端服务的情况下,创建模拟的HTTP和HTTPS服务器,以便于快速验证前端代码或者自动化测试。...

    Unit Testing with Mock Objects

    Abstract Unit testing is a fundamental practice in Extreme Programming, but most ...“Once,” said the Mock Turtle at last, with a deep sigh, “I was a real Turtle.” (Alice In Wonderland, Lewis Carroll)

    Mock是一个零侵入的服务端Mock平台,底层基于JVM Sandbox。相比于Fiddler、-mock-fe.zip

    Mock是一个强大的服务端模拟工具,它的核心特性是零侵入性,这意味着在你的实际项目代码中无需进行任何修改,即可实现服务的模拟。这极大地提高了开发效率,特别是在进行集成测试或者依赖于其他服务但又无法实时访问...

    Mock

    Mock技术在软件开发中扮演着重要的角色,尤其是在测试领域。它允许开发者在不依赖实际环境或第三方服务的情况下,创建模拟对象来代替真实组件,以便进行单元测试和集成测试。这样可以提高测试效率,减少测试复杂性,...

    spring-mock.jar

    Classes contained in spring-mock.jar: org.springframework.mock.jndi.ExpectedLookupTemplate.class org.springframework.mock.jndi.SimpleNamingContext.class org.springframework.mock.jndi....

    Centos7下mock安装rpm

    在Linux系统管理中,`Mock`是一个非常有用的工具,尤其对于开发者和打包人员而言,它能够在隔离环境中构建RPM软件包。在CentOS 7环境下,`Mock`可以帮助我们在不干扰系统其他组件的情况下测试和构建RPM包。下面将...

    mock

    Mock技术在软件开发中扮演着重要的角色,尤其是在测试阶段。它允许开发者在真实环境尚未准备好或不可用时,创建模拟对象来替代实际依赖,以便进行功能验证和性能测试。本项目涉及的内容是关于如何在Windows或Linux...

    2019年CFA一级mock打包.zip

    2019年CFA一级mock打包资源,是备考CFA一级考试的重要参考资料,它包含了模拟试题、复习指南等关键信息,旨在帮助考生熟悉考试格式、提升解题技巧。 “必读说明.zip”可能是包含了一些重要的备考指导,如考试大纲、...

    模拟mock.zip

    在IT行业中,Mock技术是一种非常重要的测试方法,特别是在前端开发中。它允许开发者在不依赖实际后端服务的情况下,对应用程序进行单元测试和集成测试。`模拟mock.zip`这个压缩包文件显然与Mock技术相关,其中包含的...

    2020 Mock Exam B - Afternoon Session (with Solutions).pdf

    本次提供的内容是关于2020年CFA(特许金融分析师)第二级模拟考试下午场次的文件,包含了解决方案。文件的背景描述了Jane Pierce在获得金融学士学位后加入了一家大型全球经纪公司担任研究助理的情况。...

    mock数据.doc

    Mock.js 数据模拟技术 Mock.js 是一种流行的前端数据模拟技术,用于模拟后端接口的响应数据,使得前端开发可以独立于后端开发,提高开发效率和体验。本文将从 Mock.js 的安装、使用、方法、注意事项等方面进行总结...

    mock 测试.pptx

    列表有 4 个字段分别是:if requests matches--- 这里显示的是匹配的条件、then response with--- 这里显示的是如果匹配条件,返回的文件、latency--- 这里显示的是延迟时间(毫秒)、comments--- 注释,这个是为了...

    mockserver1.zip

    在软件开发中,尤其是在测试阶段,MockServer可以替代真实的后端服务,允许开发者在没有实际依赖的情况下进行单元测试和集成测试。这个“mockserver1.zip”文件包含了启动和使用MockServer所需的一些基本组件和配置...

    mock在ut中的使用

    mock

Global site tag (gtag.js) - Google Analytics