基于权重的资源分布算法实现

提纲:
一、背景

二、思路

三、实现

 

 

一、背景

有的时候需要根据各种类型占用的权重来分配某种资源。如何将权重来用代码来体现呢?我觉得是个概率问题,权重越高的,在某一次资源分配的时候,能占用到资源的可能性就越高。如何用代码来表达呢?

 

二、思路

设想如下场景,我们将权重用百分比来表示,设想资源是一百份,权重为5%,则占用5份。

 

三、实现

 

   /**
     * 模拟基于权重的随机分布算法
     * 
     * @param args
     */
    public static void main(String[] args) {

        //100个字母装在容器组数里面,A1%  B%20  C%5  D%4  E%70  ,对应相应的5个权重
        List<String> weightArray = new ArrayList<String>();
        for (int i = 0; i < 20; i++) {
            weightArray.add("B");
        }

        for (int i = 0; i < 70; i++) {
            weightArray.add("E");
        }

        weightArray.add("A");
        weightArray.add("C");
        weightArray.add("C");
        weightArray.add("C");
        weightArray.add("C");
        weightArray.add("C");
        weightArray.add("D");
        weightArray.add("D");
        weightArray.add("D");
        weightArray.add("D");

        //获取随机数[0-99]
        int count = 0, countA = 0, countB = 0, countC = 0, countD = 0, countE = 0;
        while (true) {
            ++count;
            int index = new Random().nextInt(100);
            String s = weightArray.get(index);

            if ("A".equals(s)) {
                ++countA;
            } else if ("B".equals(s)) {
                ++countB;
            } else if ("C".equals(s)) {
                ++countC;
            } else if ("D".equals(s)) {
                ++countD;
            } else if ("E".equals(s)) {
                ++countE;
            }

            if (count % 100 == 0) {
                System.out.println("countA:" + countA + "countB:" + countB + "countC:" + countC
                                   + "countD:" + countD + "countE:" + countE);
                System.out.println("-----------------------------------------------");
                countA = 0;
                countC = 0;
                countB = 0;
                countD = 0;
                countE = 0;
            }
        }
    }
}

 

  不多解释了,自己看,,,

某一事件在世界地图的分布 关于世界恐怖组织袭击事件在世界分布图,首先加载世界空白地图 立即下载

相关推荐

MAX30102心率血氧传感器

估算AC、DC值的方法如下:找两个波谷点,两个波谷点之间有一个波峰点,两个波谷点相连成一条直线,与Y轴平行的线穿过波峰点会与两个波谷点连接成的直线相交于一点,这个点就是DC点,DC点的Y轴对应值就是直流分量,AC分量的值为波峰点到DC点之间的差值。在医院测量中常用的一种血氧采集方式,如下图所示,光电传感器和光源分别置于手指的两侧,光源穿过手指被另一侧的光电二极管接收,根据光衰减量计算血氧浓度。那么,根据上面的Beer-Lambert 定理,针对测量的具体场景,测量过程的衰减为三层穿透物质衰减量的叠加。

qq_41861711的博客 1万+

基于权重分配算法实现

一、在日常工作中,经常有一些针对资源分配的策略需要按权重设置,比如:某个rpc服务调用等等。今天聊一聊按权重分配资源的实现。 具体代码如下: 1.WeightRandom.java import lombok.Data; import java.io.Serializable; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; public class WeightRandom { private

ningzhao的专栏 5568

abaqus 6.13安装(ubuntu 16.04LTS)

1。从iso将文件拷贝出来 2。chmod 777 -R ./* 给文件权限 3。sudo /home/xx/A/setup 4。安装licenseserver 5。拷贝lic,log文件 6。打开license sudo ./lmgrd -c path 7. 27011@xx or 27011@localhost ...

a1099313374的博客 1950

一种按权重分配的Java算法

现有一需求,就是假设有若干任务执行者执行一定数目的任务,并且任务的分配需按一定的权重比来进行。任务的分配是随机的,分配完毕后需要为每条任务打上执行者的标签(即被谁执行。)分配算法不难,但是用java写起来还是蛮巧妙的~ 觉得很有意思,遂记之。 算法设计: 1)总的任务数能被权重和整除,则每个人分配的数量就是:总任务数/权重和*权重 2)总的任务数不能被权重和整除,则先按整除的数按1)的方式...

Try My Best 尽力而为 2692

《科研伦理与学术规范》 全部 习题_答案 2020年秋

科研伦理与学术规范 答案 文章目录科研伦理与学术规范 答案1. 第一章课后习题(必做) 答案1.1 第一章Demo2. 第二章课后习题(必做) 答案3. 第三章课后习题(必做) 答案4. 第四章课后习题(必做) 答案5. 第五章课后习题(必做) 答案6. 第六章课后习题(必做) 答案 # 每行5题 #写于2020.11.17 侵删 1. 第一章课后习题(必做) 答案 ABC, A, B ,D ,ABCD ABC, D, A, BCD, C D, D, 1.1 第一章Demo

羊老羊 25万+

安装cartographer,跑官网数据集

今天开始写一个关于google cartographer系列文章。此类文章网上已经很多,本系列文章主要记录重点部分及容易踩坑地方。 cartographer是一个完整的激光SLAM开源项目,属于graph slam,包含了完整的前端里程计和后端地图优化,既能够同时定位建图,又能够基于先验地图进行独立全局定位。 值得 目录 一、推荐首选看官网资料,已经很详细了 二、安装 三、源码文件架构 四、跑数据集 1、建图 2、基于先验地图的全局定位 一、推荐首选看官网资料,已经很详细了 原生版:

qq_18276949的博客 6144

Java权重分配的实现算法

现有一需求,就是假设有若干任务执行者执行一定数目的任务,并且任务的分配需按一定的权重比来进行。任务的分配是随机的,分配完毕后需要为每条任务打上执行者的标签(即被谁执行。)分配算法不难,但是用java写起来还是蛮巧妙的。 算法设计:1)总的任务数能被权重和整除,则每个人分配的数量就是:总任务数/权重和*权重2)总的任务数不能被权重和整除,则先按整除的数按1)的方式分,然后余数再优先分给权重较小的执行

lichch的博客 9626

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 526

Java实现根据权重优先返回(速度较快)

下面的实现比我最初写的快了四倍多哟。 实现思路: 我们知道,在10以内的整数里,0~3出现的概率是0.3,3~6出现的概率是0.3,6~7出现的概率是0.1,7~9出现的概率是0.2,9~10出现的概率是0.1 ;上面对应的权重可对应为3 、3 、1、2 、1 。所以,当我们需要实现不知道权重到底是多少时,我们只需要将所有权重加起来,假设为100,然后让随机数只出现0到100,接着给每个权重设定

爱雨轩 9333

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

S7-200SMART 的运动控制(一)向导配置具体步骤(图文)

Robot_PLC_HMI_Automation 3849

R3LIVE项目实战(3) —双目相机与激光雷达 lidar_camera_calib联合标定

lidar_camera_calib是一个在无目标环境中,用于高分辨率LiDAR(例如Livox)和摄像机之间准确的外部标定工具。我们的算法可以在室内和室外场景中运行,并且只需要场景中的边缘信息。如果场景适合,我们可以实现类似于或甚至超过基于目标的方法的像素级准确度。我们使用标定的外部参数给点云上色,并与实际图像进行比较。A和C是点云的局部放大视图。B和D是与A和C中的点云对应的摄像机图像的部分。

几度春风里的博客 4057

关于负载均衡中权重分配的算法模拟

class Server{ private String ip; private String port; public int weight; } class LoadBalancer{ private static List list=new List(); private static int totalWeight=0; static{//加载配置文件,将解析的服务器列表添加到

分享,卓越 3884

100天精通Oracle-实战系列(第33天)RHEL 7 安装 Oracle 12CR2 RAC 数据库

100天精通Oracle-实战系列(第33天)RHEL 7 安装 Oracle 12CR2 RAC 数据库

LuciferLiu_DBA 3449

java实现权重随机算法

权重随机算法在抽奖,资源调度等系统中应用还是比较广泛的,一个简单的按照权重来随机的实现,权重为几个随机对象(分类)的命中的比例,权重设置越高命中越容易,之和可以不等于100; 简单实现代码如下: import java.util.ArrayList; import java.util.List; import java.util.Random;

u011922760的博客 5202

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

权重随机算法Java实现

权重随机算法在抽奖,资源调度等系统中应用还是比较广泛的,一个简单的按照权重来随机的实现,权重为几个随机对象(分类)的命中的比例,权重设置越高命中越容易,之和可以不等于100; 简单实现代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Yan456jie的专栏 1435

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

如何优化人工智能算法以减少计算资源消耗?

总之,对于AI算法的优化我们可以从模型压缩和多维度并行化的角度入手解决其带来的高昂的计算资源和时间浪费等问题。通过有效的实施这些措施不仅可以使企业在人工智能领域的应用达到预期的性能和收益还保障了整个系统稳定可靠的服务质量。

图幻未来的博客 1214

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Elasticsearch实战——结合文本分析,推荐算法和元启发式算法实现资源自动分配

工作中有很多工作调度和资源匹配的场景,比如客服,技术支持或工单分派:带有文本描述的工单被录入系统,模糊匹配资源库中的人力资源,然后被分配给最适合的人处理。在一些场景中,工单的执行结果和评价也会被记录,作为工单分派信息的一部分被保留。 由于场景复杂而且缺少标准化的问题描述,很多这类匹配问题仍然依赖人工,造成匹配时间延迟,匹配资源基于个人喜好和习惯而非基于可量化的标准。另外由于工单和资源的数据量巨大,...

yuuyuhaksho的博客 2378

php实现代码量最少的权重随机算法

<?php function rolling(): array { $conf = [ ['id'=> 1,'weight'=>80], ['id'=> 2,'weight'=>10], ['id'=> 3,'weight'=>7], ['id'=> 4,'weight'=>2], ['id'=> 5,'weight'=>1] ]; $total = 0; foreach($con.

ndrandy的博客 541

Apache Arrow负载均衡:分布式数据处理的资源分配

在大规模数据处理场景中,分布式系统常面临计算资源分配不均的问题:部分节点过载导致任务延迟,而其他节点资源利用率不足。Apache Arrow作为多语言数据处理工具箱,通过Flight RPC协议(一种高性能数据传输协议)为分布式数据交互提供基础支持。本文将从实际应用角度,介绍如何基于Arrow构建负载均衡机制,优化资源分配效率。 ## 负载均衡与Arrow Flight架构 ### 核心概念与...

gitblog_00175的博客 1009

【边缘智能新突破】:基于动态优先级的Agent资源调度算法详解

解决边缘计算资源分配难题,本文详解基于动态优先级的Agent资源调度算法。适用于工业物联网、智能交通等场景,实现低延迟、高效率的任务处理。通过实时评估任务紧急度与资源状态,优化调度决策。点击了解完整方案,值得收藏。

Algorhythm的博客 897

java负载实现_详解Java实现负载均衡的几种算法代码

本篇文章主要介绍java实现负载均衡的几种算法,具体如下:轮询:package class2.zookeeper.loadbalance;import java.util.arraylist;import java.util.hashmap;import java.util.map;import java.util.set;/*** 負載均衡算法,輪詢法* @author guoy**/publi...

weixin_42512021的博客 188

负载均衡算法 — 轮询

负载均衡算法 — 轮询 目录 概述 简单轮询 加权轮询 平滑加权轮询 1. 概述 在分布式系统中,为了实现负载均衡,必然会涉及到负载调度算法,如 Nginx 和 RPC 服务发现等场景。常见的负载均衡算法有 轮询、源地址 Hash、最少连接数,而 轮询 是最简单且应用最广的算法。 3 种常见的轮询调度算法,分别为 简单轮询、加权轮询、平滑加权轮询。下面将用如下 4 个服务,来详细说明轮询调度过程。 服务实例 权重值 192.168.10.1:2202 1 192.168.10

努力努力再努力L 1382

智能分配机制:算法优化与分布式系统实践

资源调度与任务分配是计算机科学中的经典优化问题,其核心是通过算法实现供需双方的高效匹配。从基础的二分图匹配到复杂的多目标优化,智能分配机制将人工决策转化为数学模型,显著提升系统效率。在物流调度、网约车派单等场景中,这类技术能平衡时间成本、资源利用率等关键指标。现代实现方案通常结合遗传算法、模拟退火等优化方法,并依托分布式系统处理海量请求。通过预计算、空间索引等工程优化,系统可达到千万级吞吐量。实时监控与AB测试体系则保障了算法持续迭代,某物流系统应用后实现订单接受率提升12%的显著收益。

weixin_30635053的博客 310
上一篇: 基于Spring环境构建单元测试
下一篇: MyBatis的insert之后如何返回自动生成的主键值
liyebing
博客等级 码龄20年 32粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值