(代码示例是python)
让我们假设我们有一个加起来为100的百分比列表:
mylist = [2.0, 7.0, 12.0, 35.0, 21.0, 23.0]
某些mylist值可能会更改,其他值必须保持固定.
让我们假设前3(2.0,7.0,12.0)必须保持固定,最后3(35.0,21.0,23.0)可能会改变.
fix = mylist[:3] vari = mylist[3:]
目标是将新项添加到mylist,而sum(mylist)保持100.0并且vari
项保持它们之间的关系.为此,我们需要
从每个变量项中减去一个PERCENTAGE.示例:假设我们要将4.0添加到mylist.
使用丑陋的aproximation循环我发现我需要减去ca.
每个变量项目的5.0634%(CERTAIN PERCENTAGE = 5.0634):
adjusted =[] for number in vari: adjusted.append(number-(number*(5.0634/100.0))) adjusted.extend(fix) adjusted.append(4.0)
现在调整包含我想要的结果.
我的问题是如何计算某些百分比;.)
S.Lott.. 9
这个怎么样?
def adjustAppend( v, n ): weight= -n/sum(v) return [ i+i*weight for i in v ] + [n]
给定一个数字列表v,附加一个新数字,n.对现有数字进行加权以保持总和相同.
sum(v) == sum( v + [n] )
v,i的每个元素必须通过i,r(i)的某种函数来减少
sum(r(i)) == -n
要么
sum( map( r, v ) ) == -n
因此,加权函数是 -(n*i)/sum(v)
这个怎么样?
def adjustAppend( v, n ): weight= -n/sum(v) return [ i+i*weight for i in v ] + [n]
给定一个数字列表v,附加一个新数字,n.对现有数字进行加权以保持总和相同.
sum(v) == sum( v + [n] )
v,i的每个元素必须通过i,r(i)的某种函数来减少
sum(r(i)) == -n
要么
sum( map( r, v ) ) == -n
因此,加权函数是 -(n*i)/sum(v)