考虑下面的四个百分比,表示为float数字:
13.626332%
47.989636%
9.596008%
28.788024%
-----------
100.000000%
Run Code Online (Sandbox Code Playgroud)
我需要将这些百分比表示为整数.如果我只是使用Math.round(),我最终总共有101%.
14 + 48 + 10 + 29 = 101
Run Code Online (Sandbox Code Playgroud)
如果我使用parseInt(),我最终总共有97%.
13 + 47 + 9 + 28 = 97
Run Code Online (Sandbox Code Playgroud)
什么是一个很好的算法来表示任意数量的百分比作为整数,同时仍然保持总计100%?
编辑:在阅读了一些评论和答案后,显然有很多方法可以解决这个问题.
在我看来,为了忠实于数字,"正确"的结果是最小化整体错误的结果,由相对于实际值引入的错误舍入量来定义:
value rounded error decision
----------------------------------------------------
13.626332 14 2.7% round up (14)
47.989636 48 0.0% round up (48)
9.596008 10 4.0% don't round up (9)
28.788024 29 2.7% round up (29)
Run Code Online (Sandbox Code Playgroud)
在平局(3.33,3.33,3.33)的情况下,可以做出任意决定(例如3,4,3).
我的问题是处理来自大型CSV文件的数据.
我正在寻找最有效的方法来确定(即猜测)列的数据类型,基于该列中找到的值.我可能正在处理非常混乱的数据.因此,该算法在某种程度上应该是容错的.
这是一个例子:
arr1 = ['0.83', '-0.26', '-', '0.23', '11.23'] # ==> recognize as float
arr2 = ['1', '11', '-1345.67', '0', '22'] # ==> regognize as int
arr3 = ['2/7/1985', 'Jul 03 1985, 00:00:00', '', '4/3/2011'] # ==> recognize as date
arr4 = ['Dog', 'Cat', '0.13', 'Mouse'] # ==> recognize as str
Run Code Online (Sandbox Code Playgroud)
底线:我正在寻找一个可以检测的python包或算法
用于猜测当前表示为字符串的数据类型的方法在类似的方向上进行.不过,我担心性能,因为我可能正在处理许多大型电子表格(数据源于此)
在将PostgreSQL从9.2.4升级到9.3.1(通过OS X上的自制程序)的过程中,我遇到了一个奇怪的问题.这是我到目前为止采取的步骤
initdb在新数据库上运行pg_upgradepg_upgrade 执行必要的检查,创建旧集群的转储,但是当导入新集群时,我收到以下错误:
> ./pg_upgrade -b /usr/local/Cellar/postgresql/9.2.4/bin/ -B /usr/local/Cellar/postgresql/9.3.1/bin -d /usr/local/var/postgres/ -D /usr/local/var/postgres9.3.1 -u postgres
Performing Consistency Checks
-----------------------------
Checking cluster versions ok
Checking database user is a superuser ok
Checking for prepared transactions ok
Checking for reg* system OID user data types ok
Checking for contrib/isn with bigint-passing mismatch ok
Creating dump of global objects ok
Creating dump of database schemas
ok
Checking for presence of required libraries fatal
Your installation references …Run Code Online (Sandbox Code Playgroud) 我设计了一个由XSD方案表示的数据模型.数据模型还提供在WSDL描述符中用作Web服务参数的类型.
我想发送XSD计划,并要求相关人员对数据模型进行同行评审.
您建议使用哪种工具或演示方法作为同行评审的基础?对于非技术人员来说,数据模型应该是可读的,至少在涉及参数的语义含义时是这样
编辑:
更具体一点:当然,从语法上讲,该方案是有效的.实际上我已经在处理基于JAXB生成的类的代码了.我的目标是
编辑2
我一直在考虑如何最好地传播数据模型.我正在考虑像JavaDoc for XSD架构.谁知道这样的东西是否存在?基本上它将使用一组XSLT完成,对吧?
我收到了一个Web服务接口的WSDL文件,我们的系统将来应该调用它.
在那之前,我想设置一个虚拟/模拟Web服务,除了记录Web服务调用和返回虚拟数据之外别无其他功能.
到目前为止我所做的是从WSDL文件生成Java对象.
当您已经运行应用程序服务器(此处:JBoss)时,设置此类模型Web服务的最快方法是什么?
我有以下字典:
mydict = {
'foo': [1,19,2,3,24,52,2,6], # sum: 109
'bar': [50,5,9,7,66,3,2,44], # sum: 186
'another': [1,2,3,4,5,6,7,8], # sum: 36
'entry': [0,0,0,2,99,4,33,55], # sum: 193
'onemore': [21,22,23,24,25,26,27,28] # sum: 196
}
Run Code Online (Sandbox Code Playgroud)
我需要通过数组的总和有效地过滤和排序前x个条目.
例如,上面示例的前3个排序和筛选列表将是
sorted_filtered_dict = {
'onemore': [21,22,23,24,25,26,27,28], # sum: 196
'entry': [0,0,0,2,99,4,33,55], # sum: 193
'bar': [50,5,9,7,66,3,2,44] # sum: 186
}
Run Code Online (Sandbox Code Playgroud)
我对Python很陌生,并且自己尝试在lambda函数上链接一个sum和filter函数,但是在实际的语法上却很挣扎.
algorithm ×3
python ×2
arrays ×1
csv ×1
datamodel ×1
dictionary ×1
heuristics ×1
java ×1
math ×1
mockups ×1
percentage ×1
postgis ×1
postgresql ×1
review ×1
rounding ×1
schema ×1
upgrade ×1
web-services ×1
xsd ×1