找回密码
 欢迎注册
楼主: mathematica

[提问] 紫罗兰算式(数学代数方面的)

[复制链接]
 楼主| 发表于 2010-8-22 14:27:29 | 显示全部楼层
然后把上面代码的第25行改为"num01>158496.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 求出来的解是 Variable Value Reduced Cost NUM01 216973.0 0.000000 NUM02 236204.0 0.000000 NUM03 453177.0 0.000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-22 14:28:49 | 显示全部楼层
然后把上面代码的第25行改为"num01>216973.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 求出来的解是 Variable Value Reduced Cost NUM01 287694.0 0.000000 NUM02 247205.0 0.000000 NUM03 534899.0 0.000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-22 14:30:05 | 显示全部楼层
然后把上面代码的第25行改为"num01>287694.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 求出来的解是 Variable Value Reduced Cost NUM01 325971.0 0.000000 NUM02 315306.0 0.000000 NUM03 641277.0 0.000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-22 14:31:18 | 显示全部楼层
然后把上面代码的第25行改为"num01>325971.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 求出来的解是 Variable Value Reduced Cost NUM01 371482.0 0.000000 NUM02 321306.0 0.000000 NUM03 692788.0 0.000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-22 14:32:24 | 显示全部楼层
然后把上面代码的第25行改为"num01>371482.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 求出来的解是 Variable Value Reduced Cost NUM01 386592.0 0.000000 NUM02 326307.0 0.000000 NUM03 712899.0 0.000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-22 14:39:23 | 显示全部楼层
然后把上面代码的第25行改为"num01>386592.5;"(注意:需要以英文的分号结尾,绝对不能是中文的分号. 这回lingo11.0告诉你"no feasible solution",于是数字num01只存在6种情况,你可以用同样的办法确定num02,由于num03是num01与num02的和,所以只需要再确定一下num02,当然lingo的长处是求解最优化方面的问题,在这个题目上,用lingo求解并非它所擅长的..如果有一种语言能够像c++那样提供置换的话,那么也能够很快地求解出来. 如果你的C++很厉害的话,可以试着用c++求解下面的问题: 钢管下料方案 http://zhidao.baidu.com/question/158299137.html 这个问题没有答案,至少没有人提供c++方面的答案,你可以试一试,这个题目用lingo是很容易求解的.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-22 15:09:31 | 显示全部楼层
46# mathematica 不错,呵呵,是6个 ,我还可以吧,没怎么刁难你,
在这个题目上,用lingo求解并非它所擅长的
知道就好,我记得我最初改动了一个地方,就一下子打印出一堆的可行解,都滚屏了很长时间,可惜忘了存了,我要是把那个拿出来,你未必能坚持的走下来滴,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-22 15:17:42 | 显示全部楼层
比如,这个,SIRLEE+URCOOL= VIOLET(李先生,你是很酷的紫罗兰),就有28组解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-4-26 10:47:10 | 显示全部楼层
/*此程序使用pari/gp运行*/ /*程序编制时间:2012年4月26日10:22:23*/ /*在pari/gp中,如果输入O=0(大写字母O不能被赋值成数字0)这样的赋值语句,将出现错误,至于 为什么O不能成为变量,不知道为什么,这是个很奇怪的状况*/ /*大括号似乎是不可少的*/ { for(x=1,10!,/*给出所有可能的排列,对每一个排列一一穷举*/ /*每次给出一个排列*/ z=numtoperm(10,x); /*形成10个字母,如果数字是10,则变成0*/ c=z[1];if(c==10,c=0); l=z[2];if(l==10,l=0); o=z[3];if(o==10,o=0); v=z[4];if(v==10,v=0); e=z[5];if(e==10,e=0); r=z[6];if(r==10,r=0); u=z[7];if(u==10,u=0); s=z[8];if(s==10,s=0); i=z[9];if(i==10,i=0); t=z[10];if(t==10,t=0); /*形成三个数*/ clover=c*10^5+l*10^4+o*10^3+v*10^2+e*10^1+r; crocus=c*10^5+r*10^4+o*10^3+c*10^2+u*10^1+s; violet=v*10^5+i*10^4+o*10^3+l*10^2+e*10^1+t; \\计算clover+crocus与violet的比较,其中clover+crocus左右两边的括号不可以缺少, \\其中原因不知道为什么; \\如果两个值相等,则输出结果,如果不等则不执行操作 if((clover+crocus)==violet, print([clover,crocus,violet]) ) ) }
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-4-26 10:49:31 | 显示全部楼层
上面是程序的代码: 附近是代码文件\代码截图\结果截图
c.jpg
d.jpg

b.gp

1.33 KB, 下载次数: 0, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 11:58 , Processed in 0.026243 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表