讨论 / 掘金游戏最值求解
peter1977 2018-06-11 10:07:00
点我顶贴 收藏 删除
各位好,

问题如下说明: 1-10为10个人,每两个人组成一对掘金,每对都能掘得一定数量的金子。每个人和其他人组合可得到的一定的金子数,下表中每一行、列都代表某人和其他人组合时能得到的金子数。(金子数1-5内的整数随机分配)

人 1 2 3 4 5 6 7 8 9 10 (本行显示缩了,10对应最右面一列,9对应从右面数第二列。。。。。。)

1 0 随机 随机 随机 随机 随机 随机 随机 随机 随机

2 随机 0 随机 随机 随机 随机 随机 随机 随机 随机

3 随机 随机 0 随机 随机 随机 随机 随机 随机 随机

4 随机 随机 随机 0 随机 随机 随机 随机 随机 随机

5 随机 随机 随机 随机 0 随机 随机 随机 随机 随机

6 随机 随机 随机 随机 随机 0 随机 随机 随机 随机

7 随机 随机 随机 随机 随机 随机 0 随机 随机 随机

8 随机 随机 随机 随机 随机 随机 随机 0 随机 随机

9 随机 随机 随机 随机 随机 随机 随机 随机 0 随机

10 随机 随机 随机 随机 随机 随机 随机 随机 随机 0

规则: A,按1-10的顺序逐次进行组合选择,第一个(1)选择的可以任选剩余9人中的一个,且必须选择一名伙伴,第二个可以任选剩余7人中的一个,且必须选择一名伙伴。。。。。。以此类推,直到全部成对组合(5对); B,每次只能1对1组合;

问题:

那种组合方案(5对各自如何组合)可以得到最少或最多的金子?

要求:

A,不使用穷举法,10人只是例子,人数可设为N,偶数;

B,给出具体的算法。

#1 peter1977@2018-06-11 10:08:58
回复 删除
本题中随机的意思是在选之前,为每个人的不同组合随机指定(或赋予)一定的值,这个是前提,然后在这组值得基础上去找最值。之所以没指定值,是想找出一个更通用的算法。

补充说明:

这个问题,可能存在歧义,我再说详细一些:

1-10个号码,按1-10的顺序选择伙伴组合,比如1可以选2-9内任一个,比如选了2,则1-2为一个组合,可以得到一定的金子,金子数量我们可以任意指定为G1,

接下来,第二对选择,由于2已经被1选中,则从3开始(如果1没选2,则从2开始),此时剩余为4,5,6,7,8,9,10.。。。。。。。。。。假如3选了5,则3-5组合得到金子数为G2;

同理,第三对开始选择,从4开始,....................................................................................G3, 接下来,G4, G5, ............................直到所有人组合成功。

其中,G1-G5的值(一个人和其他一人组合的到的金数)我们可以任意随机指定,这个在于探讨算法,而不是具体的值。

最后的最值的问题是在所有可能的组合中找到MAX或min(G1+G2+......G5)

有一点需特别提醒,当先选者选择后面的人时,在满足自己最大的同时,可能消除了后面被选的人得到更多金子的机会(也就是说,如果被选的没有被选中,这个人可能有一个得到更多金子的组合)

查看更多回复
提交回复