楼主: mayoku
12113 104

[其它] 请教一个数学问题 悬赏 [推广有奖]

11
hssunduan 发表于 2010-4-11 18:39:22
意思是说呢,理想情况下,肯定是ai+bi都相等是最小的,但是由于ai和b的大小关系可能并不能是他们相等,那么就让他们尽可能相等,ai大的bi小,ai小的bi大,所以就可以一步一步的让他们相等。。。程序实现的话还是比较好实现的。。

12
nepter 发表于 2010-4-11 18:42:53
可以加分了吧,5楼是最简单的公式了,7楼是最简单的算法了。。。

13
042327 发表于 2010-4-11 19:03:02
结果是:a1+b1=a2+b2=…………=an+bn=2b÷n时,即bi=2b÷n-ai(其中:i=1,2,3,……n)时,标准差系数最小。

14
mayoku 发表于 2010-4-11 20:00:13
意思大概理解了  既然管理员置顶了 要不要多等等看看其他更好的解释或者办法 主要是我自己还不是太懂如何用程序实现 sigh

15
mayoku 发表于 2010-4-11 20:02:48
另外  标准差最小是否等价于标准差系数也最小 我感觉应该是

16
nepter 发表于 2010-4-11 20:16:01
15# mayoku

显然a已知,b固定,那么均值是常数,那什么标准差系数和标准差是等价的。

17
kudosiyin 发表于 2010-4-11 20:47:37
nepter 发表于 2010-4-11 20:16
15# mayoku

显然a已知,b固定,那么均值是常数,那什么标准差系数和标准差是等价的。
同意。

不过我也不是很明白你说的那个解法的意思,不好意思……

这里给一下我的理解:

1)因为b总量已知,所以(ai+bi)的总量和平均值也已知,是2b/n

2)既然标准差系数和标准差等价,那就只要求(ai+bi)是最小标准差即可

3)所有值均非负

我给出的算法是:

1)先给ai序列排序,从小到大,得到新数列ci

2)bi的取值取决于ci,先构造一个中间数列di,将小于2b/n的ci对应的di赋值(设有k个ci小于2b/n,k≤n),值为[2b/n-ci],其余di为0。[]为取整操作。

3)计算di总值,若总值≥b,则此时应将di均匀减去这个差值

4)若总值≤b,则di均匀加上这个差值


最终得到nepter说的那个结果
已有 1 人评分学术水平 热心指数 收起 理由
tangsanzang007 + 1 + 1 好的意见建议

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

18
zerson 发表于 2010-4-11 20:54:20
刚才有个思路不对,思考中...

19
nepter 发表于 2010-4-11 21:17:51
咋撤下来了???
还是我那个水桶理论啦,往水位最低的水桶里灌水,使n个桶的水位尽可能接近。可以证明越是给水位低的桶灌水,标准差减少的越快。算法也是根据这个想法得来的。5楼的公式是标准公式,学过最优化理论的一目了然。

20
kudosiyin 发表于 2010-4-11 21:29:15
19# nepter

我说的算法和你的有个不同的是,我先明确地给出了“加的水量”,但你的是一个个慢慢加——如果有非常多的数据的话,可能你的那个做法就有点慢了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-26 19:04