arrays - 尽可能均匀地分布数组中的项目类型
问题描述
每种类型都有不同数量的项目。假设我有项目“a”、“b”和“c”。有这些项目的数组 ['a','b','b','c','c','c','a','c'] 例如,我想重新定位这些项目数组,因此它们都被尽可能频繁地访问,与有多少成比例。
任何想法我如何做到这一点。我想要它,这样我就可以为我的服务器获取负载处理因素,并简单地构建一组主机 ID,这样我就可以尽可能均匀地分散负载,而不是将 5 个客户端连续发送到一个服务器,然后将 3 个客户端连续发送到另一个服务器。如果你明白我的意思。
解决方案
如果你想做一个负载均衡器,你可以使用 linq 来获取查找并获取当前负载的计数,然后将新客户端分配给最低计数。
public static int minLoad(List avg) { var count = avg.ToLookup(x => x).Select(x => new { item = x.Key, Counter = x.Count() }); var minclient = count.OrderByDescending(x => x.Counter).First().item; 返回最小客户端;} 公共静态字符串 minLoadstr(List avg) { var count = avg.ToLookup(x => x).Select(x => new { item = x.Key, Counter = x.Count() }); var minclient = count.OrderByDescending(x => x.Counter).First().item; 返回最小客户端;} public static void Main(string[] args) { List clientsload = new List { 1, 1, 2, 2, 3, 3 }; int minclient = minLoad(clientsload); 列出客户loadstr = new List { "A","A","C","B","C","C" }; 字符串 minclientstr = minLoadstr(clientsloadstr); }
推荐阅读
- python - 在蛋白质序列中找到已识别模式的位置
- youtube-api - Youtube api 未找到视频
- rust - 在异步 Rust (Tokio) 中包装阻塞 mpsc
- django - Django ForeignKey 值没有对应的值
- node.js - 打字稿错误:Blob 不是构造函数
- python - 使用 huggingface fill-mask 管道来获得它没有建议的结果的“分数”
- android - 如何使用形状材质组件制作完整的圆形编辑文本?
- java - 为什么 Java 中的 System.out.println() 会打印到控制台?
- wifi - 有没有办法强制设备发送 VHT 波束成形报告?
- algorithm - 如何以 O(n) 时间复杂度实现 Eratosthenes 筛?