zhouguang 发表于 2017-5-25 10:44:56

石头

世间有5种石头ABCDE,它们可以1:1交换,但是人们更加喜欢排在前面的字母石头(最喜欢A),比如说,一个C可以随时换成一个D,但是想把一个D再直接换回一个C就不行了,必须要付出代价,那就是要同时将三个D换成三个E,也可以理解为四个D可以随时换成一个C和三个E,人们把这条规则记为:cd-3de。这种规则一共有三条,分别是:cd-3de、bc-5cd+10de、ab-7bc+21cd-35de。看最后一条规则表明:要想把一个B升级为A,需要7个B和35个D降级,当然,可以得到21个D升级的机会做为添头。人们在兑换时为了方便,在兑换前可以借贷任意数目的各类石头,但要在兑换后立即如数归还。
现在如果一个人有一个A和十个C,想得到尽量多的B,那么最多能得到几个B呢?

zeroieme 发表于 2017-5-25 22:01:10

本帖最后由 zeroieme 于 2017-5-25 22:04 编辑

5个
尽管以1:1交换,但人们更加喜欢排序靠前,说明它们之间有细微价值差异。
\(\delta _a>\delta _b>\delta _c>\delta _d>\delta _e\)
另外3条规则以不等式表示成
\(4 \delta _d>\delta _c+3 \delta _e\)
\(8 \delta _b+56 \delta _d>\delta _a+28 \delta _c+35 \delta _e\)
\(6 \delta _c+10 \delta _e>\delta _b+15 \delta _d\)

设\(\delta _a+10 \delta _c>n_1 \delta _a+\left(11-n_1-n_3-n_4-n_5\right) \delta _b+n_3 \delta _c+n_4 \delta _d+n_5 \delta _e\)成立,可表示为前述条件的和,即\(\left(\delta _a+10 \delta _c\right)-\left(n_1 \delta _a+\left(11-n_1-n_3-n_4-n_5\right) \delta _b+n_3 \delta _c+n_4 \delta _d+n_5 \delta _e\right)=x_6 \left(\left(8 \delta _b+56 \delta _d\right)-\left(\delta _a+28 \delta _c+35 \delta _e\right)\right)+x_1 \left(\delta _a-\delta _b\right)+x_7 \left(\left(6 \delta _c+10 \delta _e\right)-\left(\delta _b+15 \delta _d\right)\right)+x_2 \left(\delta _b-\delta _c\right)+x_5 \left(4 \delta _d-\left(\delta _c+3 \delta _e\right)\right)+x_3 \left(\delta _c-\delta _d\right)+x_4 \left(\delta _d-\delta _e\right)\)

于是构成了一个整数规划
Maximize[{(11-Subscript-Subscript-Subscript-Subscript),Apply-Subscript-Subscript-Subscript),Subscript,Subscript,Subscript,Subscript}),(#>=0&/@{Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript}),(#==0&/@(MonomialList[((Subscript[\, a]+10Subscript[\, c])-((11-Subscript-Subscript-Subscript-Subscript)Subscript[\, b]+Subscript Subscript[\, a]+Subscript Subscript[\, c]+Subscript Subscript[\, d]+Subscript Subscript[\, e]))-(Subscript(Subscript[\, a]-Subscript[\, b])+Subscript(Subscript[\, b]-Subscript[\, c])+Subscript(Subscript[\, c]-Subscript[\, d])+Subscript(Subscript[\, d]-Subscript[\, e])+Subscript(4 Subscript[\, d]-(Subscript[\, c]+3 Subscript[\, e]))+Subscript((8 Subscript[\, b]+56 Subscript[\, d])-(Subscript[\, a]+28 Subscript[\, c]+35 Subscript[\, e]))+Subscript((6 Subscript[\, c]+10 Subscript[\, e])-(Subscript[\, b]+15 Subscript[\, d]))),{Subscript[\, a],Subscript[\, b],Subscript[\, c],Subscript[\, d],Subscript[\, e]}]/.Subscript[\, _]->1))}]]},{Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript,Subscript},Integers][\code]

结果5

zhouguang 发表于 2017-5-26 11:02:50

我计算的结果也是5个。1个A和10个B可以换得5个C和6个D。
题目相当于:{1,-8,28,-56,35}+3{0,1,-6,15,-10}+0{0,0,1,-4,3}+5{0,0,0,1,-1}={1,-5,10,-6,0}。
页: [1]
查看完整版本: 石头