请准备计算器……

来源:百度知道 编辑:UC知道 时间:2024/06/18 09:18:40
小莫是班里的体育委员,班里要订购43套球衣,商场里每套球衣标价为158元。但由于商场正在搞优惠活动,每消费200元就可以获赠价值80元的购物券,用购物券消费时零头不可兑换。请你为小莫设计一个最省钱的购买方案。

如题目表达有不清楚的地方,可发消息向我询问。另外,方案的书写要清晰,而思考的过程则可以省略。多谢合作~~!
此题的算法并不确定,只要最后的费用最低,怎样算都可以。

已经减到4194元了,到达我的极限了,我做了个表
http://i3.6.cn/cvbnm/2b/bf/33/a22850b6d1a91bb1a6323b3149a1ccac.jpg

声明:消费券买东西不可以得到新的消费券 ,而且这家店没有别的类似冰红茶/雪糕的廉价商品。
组合极值问题,解答如下:
[x]高斯函数

第k次买衣服正整数a(k)件,获得优惠卷80*[158a(k)/200]
一共买n次
最后用所有的优惠卷买剩下的衣服
∑a(k)+[(∑80*[158*a(k)/200])/158]=43
求158*∑a(k)的最小值

思考中
利用
[x]<=x
[x]+[y]+……+[z]<=[x+y]+……+[z]<=[x+y+……+z]

43=∑a(k)+[(∑80*[158*a(k)/200])/158]
<=∑a(k)+(80/158)∑[79*a(k)/100]
=∑a(k)+(40/79)∑[79*a(k)/100]
<=∑a(k)+(40/79)(79/100)∑a(k)
=(7/5)∑a(k)

∑a(k)是整数
所以
∑a(k)>=31
158*∑a(k)>=4898

可否取等?
买31件,158*31=4898,找1920券,可以买12件
所以是对的!

43乘158=6794
6794除200=33......194
33乘80=2640
(6794+2640)除(158+80)
=9434除238
=39......152
答:买39