- 在线时间
- 3 小时
- 最后登录
- 2023-10-27
- 注册时间
- 2007-9-21
- 听众数
- 5
- 收听数
- 0
- 能力
- 0 分
- 体力
- 139 点
- 威望
- 4 点
- 阅读权限
- 20
- 积分
- 96
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 28
- 主题
- 4
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   95.79% 该用户从未签到
 |
model: sets: lock/1..462/; person/1..11/; link(lock,person):status; endsets min=@sum(link(i,j)|j#eq#1:status(i,j)); @for(link bin(status)); @for(person(r) for(person(s) for(person(t) for(person(x) for(person(y): @for(person(z)|r#lt#s#and#s#lt#t#and#t#lt#x#and#x#lt#y#and#y#lt#z: @prod(lock(i):status(i,r)+status(i,s)+status(i,t)+status(i,x)+status(i,y)+status(i,z))>1)))))); @for(person(r) for(person(s) for(person(t) for(person(x): @for(person(y)|r#lt#s#and#s#lt#t#and#t#lt#x#and#x#lt#y: @prod(lock(i):status(i,r)+status(i,s)+status(i,t)+status(i,x)+status(i,y))=0))))); end 模型的背景:有11个人组成一个委员会保管保险柜,给保险柜加了若干把锁,问最少加多少把锁,使得任意6位委员同时到场就能打开保险柜,而任意5位委员同时到场却不能打开保险柜?并指出对于锁的把数最少的情形如何分配钥匙以满足上述要求? status(i,j)=1表示第i个人能打开第j把锁, status(i,j)=0表示第i个人不能打开第j把锁, 数学上论证了n>=462,LINGO程序如上,请高手指点,请给出LINGO运行结果!!! status(i,j)=0表示第i个人不能打开第j把锁, 数学上论证了n>=462,LINGO程序如上,请高手指点,请给出LINGO运行结果!!! |
zan
|