数学建模社区-数学中国

标题: 一道Google面试题用Lingo解 [打印本页]

作者: alvlen    时间: 2013-1-26 14:47
标题: 一道Google面试题用Lingo解
本帖最后由 wujianjack2 于 2013-8-21 22:05 编辑

原题是这样的:
请根据以下信息推算出这些兄弟姐妹的排行与各自性别:
1.A有3个妹妹;
2.B有一个哥哥;
3.C是女的,她有两个妹妹;
4.D有2个弟弟;
5.E有两个姐姐;
6.F也是女的,但她和G没有妹妹。

然后我用Lingo编了如下程序:
model:
sets:
mem/A..G/:gd,eld;                  !gd表示性别(1为男,0为女);eld表示在家中的排行,值越大排行越高;
endsets
@for(mem:@bin(gd)); @for(mem:@gin(eld));
@sum(mem(i)|eld(i)#lt#eld(1):1-gd(i))=3;                   !A有3个妹妹;
@sum(mem(i)|eld(i)#gt#eld(2):gd(i))=1;                    !B有1个哥哥;
@sum(mem(i)|eld(i)#lt#eld(3):1-gd(i))=2;                   !C有2个妹妹;
gd(3)=0;                                                               !C是女的;
@sum(mem(i)|eld(i)#lt#eld(4):gd(i))=2;                      !D有两个弟弟;
@sum(mem(i)|eld(i)#gt#eld(5):1-gd(i))=2;                  !E有两个姐姐;
@sum(mem(i)|eld(i)#lt#eld(6):1-gd(i))=0;                   !F没有妹妹;
gd(6)=0;                                                               !F是女的;
@sum(mem(i)|eld(i)#lt#eld(7):1-gd(i))=0;                   !G没有妹妹;
min=@sum(mem:eld);
end

结果说我的程序是 ill defined的。。。
希望各位大侠看看这个程序错在什么地方??

作者: 唯世    时间: 2013-4-20 09:16
真是太使用了!
作者: ╭ァ侽亽_景    时间: 2013-4-23 10:55

作者: 闹腾亮    时间: 2013-5-29 13:19
有谁知道错在哪里了吗,同求啊
作者: 闹腾亮    时间: 2013-5-29 15:55
本帖最后由 wujianjack2 于 2013-8-21 22:06 编辑

!请根据以下信息推算出这些兄弟姐妹的排行与各自性别:
1.A有3个妹妹;2.B有一个哥哥;3.C是女的,她有两个妹妹;4.D有2个弟弟;5.E有两个姐姐;6.F也是女的,但她和G没有妹妹。;
MODEL:
SETS:
PEOPLE/1..7/:XB,AGE;  !XB:表示性别,1为男,0为女。AGE:表示年龄;
ENDSETS
@FOR(PEOPLE:@BIN(XB));
@FOR(PEOPLE:@GIN(AGE));
@FOR(PEOPLE:@BND(1,AGE,7));
@FOR(PEOPLE(I):@FOR(PEOPLE(J)|I#NE#J:@ABS(AGE(I)-AGE(J))>=1));!每个人的排行不一样;
@SUM(PEOPLE(I)|I#NE#1:@IF(AGE(I)#LT#AGE(1),1-XB(I),0))=3;
@SUM(PEOPLE(I)|I#NE#2:@IF(AGE(I)#GT#AGE(2),XB(I),0))=1;
@SUM(PEOPLE(I)|I#NE#3:@IF(AGE(I)#LT#AGE(3),1-XB(I),0))=2;
@SUM(PEOPLE(I)|I#NE#4:@IF(AGE(I)#LT#AGE(4),XB(I),0))=2;
@SUM(PEOPLE(I)|I#NE#5:@IF(AGE(I)#GT#AGE(5),1-XB(I),0))=2;
@SUM(PEOPLE(I)|I#NE#6:@IF(AGE(I)#LT#AGE(6),1-XB(I),0))=0;
@SUM(PEOPLE(I)|I#NE#7:@IF(AGE(I)#LT#AGE(7),1-XB(I),0))=0;
XB(3)=0;
XB(6)=0;
max=@sum(PEOPLE:AGE);
END
作者: 闹腾亮    时间: 2013-5-29 15:56

                       Variable           Value        Reduced Cost
                         XB( 1)        0.000000            0.000000
                         XB( 2)        1.000000            0.000000
                         XB( 3)        0.000000            0.000000
                         XB( 4)        1.000000            0.000000
                         XB( 5)        0.000000            0.000000
                         XB( 6)        0.000000            0.000000
                         XB( 7)        1.000000            0.000000
                        AGE( 1)        7.000000           -1.000000
                        AGE( 2)        4.000000           -1.000000
                        AGE( 3)        6.000000           -1.000000
                        AGE( 4)        5.000000           -1.000000
                        AGE( 5)        3.000000           -1.000000
                        AGE( 6)        2.000000           -1.000000
                        AGE( 7)        1.000000           -1.000000

结果
作者: 江湖小虾米    时间: 2013-8-21 22:04
面试题。和面试官说:“你好,让我用Lingo解一下。。。”
开个玩笑~~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5