`

利用 java random实现加权均衡算法

    博客分类:
  • java
 
阅读更多

算法设计思路如下:

1、将一组加权值在数轴上分布每个加权值表示数轴上的一段如权值(10,20,30,40)

      如下图所示,表示了4个权值在数轴上的分布,分布顺序任意

      

 

2、所有权值的总和表示随机的范围,采用JAVA RANDOM 计算随机值 ,本例中范围为100

      Random random = new Random(); int point = random.nextInt(100);

 

3、获取随机值所对应的权值标签

     按照区间 [lower,upper) 分段检查 随机值落在哪个区间内,随机值所落的区间即为命中的权重标签

     如本例中随机值为 80 则 命中 权重 【40】

 

4、算法代码

private Long getVersion(TreeMap<Long,Integer> gammaMap){
        Long version = null;
        Random random = new Random();
        //get a point in [0,100)
        int randomPoint = random.nextInt(100);
        int lower = 0,upper = 0;
        for(Map.Entry<Long, Integer> entry : gammaMap.entrySet()){
            Long entryVersion  = entry.getKey();
            int gamma = entry.getValue() == null ? 0 : entry.getValue().intValue();
            lower = upper;
            upper += gamma;
            if(randomPoint >= lower && randomPoint < upper){
                version = entryVersion;
                break;
            }
        }
        logger.info("==>random:{},version:{}",randomPoint,version);
        return version;
    }

 

5、算法测试

1000次调用 权重分布

[101,184,280,435]

 

6、总结

算法的可靠性取决于随机算法的随机性,按测试结论基本实现了按权重的均衡

 

 

  • 大小: 25.3 KB
分享到:
评论

相关推荐

    Java实现随机森林算法

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

    用Java语言实现RSA加密算法

    根据给定的信息,本文将详细解释如何在Java中实现RSA加密算法,并且解析代码中的关键概念与步骤。 ### RSA加密算法简介 RSA是一种非对称加密算法,它基于大数分解难题来确保安全性。RSA算法涉及到两个密钥:公钥...

    JAVA 抽奖算法,JAVA 抽奖算法·

    该JAVA抽奖算法通过合理的概率缩放、累积概率计算以及随机数生成与比较等步骤,实现了基于不同概率分布的灵活抽奖功能。对于实际应用场景来说,这种算法不仅简单高效,而且易于扩展,能够满足多种不同的需求。

    java实现银行家算法

    《Java实现银行家算法详解》 银行家算法是一种经典的避免死锁的策略,它通过预分配资源和安全性检查来防止系统进入不安全状态。在Java中实现银行家算法,主要涉及线程同步、随机资源分配以及安全性判断等关键步骤。...

    python的random模块及加权随机算法的python实现方法

    random是用于生成随机数的,我们可以利用它随机生成数字或者选择字符串。 •random.seed(x)改变随机数生成器的种子seed。 一般不必特别去设定seed,Python会自动选择seed。 •random.random() 用于生成一个随机...

    几种简单的负载均衡算法及java实现1

    负载均衡算法及Java实现 负载均衡是指通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,以解决大量并发访问服务问题。负载均衡能够平均分配客户请求到服务器阵列,借此提供快速获取...

    用java编程实现算法

    ### 使用Java编程实现RSA算法 #### 一、引言 随着网络技术的快速发展,网络安全问题变得日益重要。数据保密变换或密码技术作为一种保护计算机信息安全的有效手段,在网络安全领域扮演着核心角色。RSA加密算法作为...

    java遗传算法寻找最优路径

    ### Java遗传算法寻找最优路径 #### 一、遗传算法概览 ...综上所述,这段Java代码通过遗传算法成功地实现了寻找最优路径的目标,通过对代码的具体分析我们可以更加深入地理解遗传算法的基本思想及其实现细节。

    一种基于服务类型的web集群负载均衡算法

    本文针对服务器负载的关键影响因素进行深入分析,并提出一种新颖的基于服务类型的负载均衡算法(RLBST:Random Dispatch Load-Balance Algorithm Based on Service Type),该算法通过引入负载信息纠偏因子周期性地...

    Bayes自然图像抠图(Java实现)(看评论酌情下载)

    "Bayes自然图像抠图(Java实现)"是一个Java编程实现的算法,它利用贝叶斯理论来处理这一问题。贝叶斯方法是一种统计推理方法,它通过后验概率来更新先验概率,从而得出最佳的假设或预测。在图像处理中,这种思想被...

    基于java的遗传算法设计与实现

    在Java编程环境中实现遗传算法,可以利用其面向对象的特性,提高代码的可读性和复用性。本篇文章将深入探讨如何在Java中设计和实现遗传算法。 一、遗传算法的基本原理 遗传算法模仿了生物进化中的自然选择、基因...

    K-Means算法简介及最新改进Java代码实现

    通过以上对K-Means算法的简介及其最新改进的Java代码实现的解析,我们可以了解到该算法的基本原理和具体的实现细节。对于实际应用而言,这种基于Weka的二次开发实现不仅提高了算法的灵活性,也便于进一步的扩展和...

    java 算法实现只是一个简单的测试例子

    在Java中实现算法,我们需要理解基本的数据结构(如数组、链表、栈、队列和树等)和控制流(如循环和条件语句)。在这个测试例子中,可能涉及到的是对这些基础知识的应用。 “一百个囚犯的故事”是一个经典的算法...

    遗传算法java实现

    遗传算法java实现 遗传算法是一种搜索启发式算法,它模拟自然选择和遗传过程,通过选择、交叉、变异等操作来搜索最优解。在交通路线和方式规划问题中,遗传算法可以用来解决 Vehicle Routing Problem(VRP),即...

    基于Java实现的遗传算法案例.zip

    在这个基于Java实现的遗传算法案例中,我们将深入探讨如何利用Java编程语言来设计并实现一个遗传算法。 遗传算法的核心概念包括种群(Population)、基因(Genes)、适应度(Fitness)和遗传操作(Crossover、...

    RAS算法Java实现.pdf

    4. Java实现:RAS算法的Java实现使用BigInteger类来表示大整数,并使用Random类来生成随机数。 代码解释 1. static BigInteger p,q,e,q1,p1,p2,q2,e1,m;:定义了RAS算法中的变量,包括两个大素数p和q,公钥e,私钥d...

    java实现随机森林RandomForest的示例代码

    Java 实现随机森林算法的示例代码 随机森林(Random Forest)是一种由多棵树组成的分类或回归方法。其主要思想来源于 Bagging 算法,通过对多个弱分类器的组合,提高模型的泛化能力和可靠性。下面是 Java 实现随机...

    kmeans算法代码实现(java)

    3. **初始化**:随机选取k个样本点作为初始质心,可以通过Java的Random类来实现。 4. **分配样本**:遍历数据集,对每个样本执行上述的分配规则。 5. **更新质心**:对每个类别,重新计算其质心,即所有样本点的...

    RAS算法Java实现

    在Java中实现RAS算法主要包括以下几个步骤: 1. **生成素数p和q**:在提供的代码中,`run`和`run1`方法分别用于生成两个大素数p和q。首先,通过`Random`类生成一个随机的大整数,然后通过`nextProbablePrime()`方法...

Global site tag (gtag.js) - Google Analytics