计算百分比---饥饿算法(golang)
//GetPercentWithPrecision eleme 最大饥饿算法
/*** @param {Array.<number>} valueList a list of all data 一列数据* @param {number} idx index of the data to be processed in valueList 索引值(数组下标)* @param {number} precision integer number showing digits of precision 精度值* @return {number} percent ranging from 0 to 100 返回百分比从0到100* eg. GetPercentWithPrecision([]int{3, 3, 3}, 0, 2) // 33.34*/
func GetPercentWithPrecision(valueList []int, idx int, precision int) (res float64) {if idx >= len(valueList) {res = 0return}var digits = math.Pow10(precision)var total = 0for _, value := range valueList {total += value}if total == 0 {return}var votesPerQuota = make([]float64, len(valueList))for i, value := range valueList {votesPerQuota[i] = float64(value) / float64(total) * digits * 100}var targetSeats = digits * 100var currentSeatsSum intvar seats = make([]int, len(valueList))var remainder = make([]float64, len(valueList))for i, votes := range votesPerQuota {seats[i] = int(votes)currentSeatsSum += int(votes)remainder[i] = votes - float64(seats[i])}for currentSeatsSum < int(targetSeats) {var max = float64(0)var maxID = 0for i, remainVal := range remainder {if remainVal > max {max = remainValmaxID = i}}seats[maxID]++remainder[maxID] = 0currentSeatsSum++}res = float64(seats[idx]) / digitsreturn
}
计算百分比---饥饿算法(golang)相关推荐
- 获取用户列表为空_数据结构和算法(Golang实现)(15)常见数据结构-列表
列表 一.列表 List 我们又经常听到 列表 List 数据结构,其实这只是更宏观的统称,表示存放数据的队列. 列表 List:存放数据,数据按顺序排列,可以依次入队和出队,有序号关系,可以取出某序 ...
- vrp 节约算法 c++_数据结构和算法(Golang实现)(8.1)基础知识-前言
基础知识 学习数据结构和算法.我们要知道一些基础的知识. 一.什么是算法 算法(英文algorithm)这个词在中文里面博大精深,表示算账的方法,也可以表示运筹帷幄的计谋等.在计算机科技里,它表示什么 ...
- 量子计算机 漫画,漫画 | 10分钟看懂量子比特、量子计算和量子算法
原标题:漫画 | 10分钟看懂量子比特.量子计算和量子算法 请做好准备,即将进入烧脑模式! 宏观世界的生活经验很多都是表象.比如,你可能认为世界的运行是确定的.可预测的:一个物体不可能同时处于两个相互 ...
- ARCore中根据屏幕坐标计算射线的算法
ARCore中根据屏幕坐标计算射线的算法 ARCore中提供了根据屏幕坐标.视口大小及view. project矩阵计算从屏幕坐标发射一条射线的方法,此方法用于3D拾取. 1 class Ray { ...
- oracle百分比变成小数,oracle中计算百分比,并同时解决小数点前0不显示的问题...
select a.catalog_name,decode(substr(trunc((a.s/b.count2),4)*100||'%',0,1),'.',replace(trunc((a.s/b.c ...
- MySql计算百分比
根据相应条件抽出相应count数(myCount) 抽出总count数(totalCount) 计算百分比:myCount / totalCount * 100 四舍五入:使用ROUND函数ROUND ...
- 相似度计算 java_Java基于余弦方法实现的计算相似度算法示例
Java基于余弦方法实现的计算相似度算法示例 引导语:Java 编程语言的风格十分接近C.C++语言.Java是一个纯的面向对象的程序设计语言,以下是小编整理的Java基于余弦方法实现的`计算相似度算 ...
- java 计算百分比_java前后台计算百分比(保留2位小数)
1.后台计算百分比: **方法一: public String getPercent(Integer num,Integer totalPeople ){ String percent ; Doubl ...
- python怎么计算百分比_python计算两个数的百分比方法
工作中遇到了要计算两个数百分比的问题,python 2.7 环境. 代码: #!/usr/bin/env python #function: 计算百分比 #USAGE: python calculat ...
最新文章
- 提高github下载速度
- linux网络培训题目,linux 网络学习问题命令总结
- 背英语单词很困难,不妨学习一下词根词缀吧(每天10个词根、词缀)Part 1
- 背景颜色及背景图片相关的属性
- 【java.lang.NoClassDefFoundError: t/SpringBootConfiguration】
- oracle互换2条记录,ORACLE中确定表里哪些行是彼此互换的
- http协议(十)实体首部字段
- 1、微博RPC框架Motan
- C#反编译工具Reflector.exe教程
- ad中那个快捷键是重复上一部_PPT中十大快捷键
- 级数 p级数 q级数 调和级数为什么叫做“调和”级数 等比数列求和公式和等差数列求和 斜率:
- WPF Binding表达式
- 老电脑可以升级win10系统吗
- cocoa和cocoa Touch的区别
- 怎样设计一个好的社交网站
- 五款免费同步备份软件介绍
- 面试时如何回答你的缺点是什么?
- Vue 解决兄弟组件之间传值问题
- MOS管和三极管的工作原理对比
- User root is not allowed to impersonate anonymous