QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1869|回复: 8
打印 上一主题 下一主题

新手问题,为什么无法求解......

[复制链接]
字体大小: 正常 放大
瞧红尘        

1

主题

4

听众

9

积分

升级  4.21%

  • TA的每日心情
    郁闷
    2013-9-2 10:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2013-8-30 17:47 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    求解 s1,A,B

    model:
    !都是32位无符号整数;
    @gin(A);
    @gin(B);
    @gin(s1);
    @gin(s2);
    @gin(s3);
    @gin(s4);
    @gin(s5);
    @gin(s6);
    @gin(s7);
    s2=@mod(s1*A+B,4294967296); !计算机中32位无符号数;
    s3=@mod(s2*A+B,4294967296);
    s4=@mod(s3*A+B,4294967296);
    s5=@mod(s4*A+B,4294967296);
    s6=@mod(s5*A+B,4294967296);
    s7=@mod(s6*A+B,4294967296);
    !..............;

    @mod( @mod( @floor(s1/65536),32768 ) ,136) = 93;
    @mod( @mod( @floor(s2/65536),32768 ) ,136) = 128;
    @mod( @mod( @floor(s3/65536),32768 ) ,136) = 111;
    @mod( @mod( @floor(s4/65536),32768 ) ,136) = 112;
    @mod( @mod( @floor(s5/65536),32768 ) ,136) = 24;
    @mod( @mod( @floor(s6/65536),32768 ) ,136) = 102;
    @mod( @mod( @floor(s7/65536),32768 ) ,136) = 82;
    !..............;
    end



    我知道解为
    s1=23932311
    A=214013
    B=2531011
    想知道怎么求出来....
    zan
    转播转播 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

       楼主你好,抱歉我没有解决你的问题。
       如果你还继续看的话这里我给出我的几点建议:
       一.以我目前对LINGO的认识来看,LINGO的专长是优化领域,而我认为,优化问题都是要求在一定的假设下给出的相对比较满意的结果。结果并不具有绝对的精确性,而楼主想求解的这个问题是一个要求精确值的数学问题,可能LINGO的算法对此并不具有高效率的求解性;
       二.LINGO求解问题,也是有自己的算法的。我们在一般的使用中,其API的各种参数均采用默认值,就能求解出来一般遇到的问题。我目前也没有接触到比较复杂的问题,也因为个人见识的一些局限没有对API设置进行研究,如果楼主实在想解决此题,可以在这方面了解下;
       三.或许LINGO可以求解此题,但是,对于这个问题本身,我想问楼主,你确定解是唯一的么?如果不是唯一的,那么很可能就存在一个比较大的搜索空间,这样在时间上的开销就不很好预测与控制了;
       四.对于这种类型的题目,楼主或许可以尝试其它软件,比如:MATLAB,Mathematica,它们有着卓越的数值计算功能,或许可以解决这样的问题。
       以上是我个人的一些观点,再次向楼主表示歉意,我没有对此做出比较好的答复。
    有什么好说的
    回复

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    你的这个问题出在这段代码中
    s2=@mod(s1*A+B,4294967296); !计算机中32位无符号数;
    s3=@mod(s2*A+B,4294967296);
    s4=@mod(s3*A+B,4294967296);
    s5=@mod(s4*A+B,4294967296);
    s6=@mod(s5*A+B,4294967296);
    s7=@mod(s6*A+B,4294967296);

    因为如果s1,A,B取到你所需要的值,s1*A就超过了计算机整数的最大值了,所以不可能给出结果的
    数学建模社会化
    回复

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    1. <p>model:</p><p>!都是32位无符号整数;</p><p>
    2. </p><p>
    3. </p><p>@gin(A);</p><p>@gin(B);</p><p>@gin(s1);</p><p>@gin(s2);</p><p>@gin(s3);</p><p>@gin(s4);</p><p>@gin(s5);</p><p>@gin(s6);</p><p>@gin(s7);</p><p>s2=@mod(s1+B,4294967296); !计算机中32位无符号数;</p><p>s3=@mod(s2+B,4294967296);</p><p>s4=@mod(s3+B,4294967296);</p><p>s5=@mod(s4+B,4294967296);</p><p>s6=@mod(s5+B,4294967296);</p><p>s7=@mod(s6+B,4294967296);</p><p>!..............;</p><p>
    4. </p><p>@mod( @mod( @floor(s1),32768 ) ,136) = 93;</p><p>@mod( @mod( @floor(s2),32768 ) ,136) = 128;</p><p>@mod( @mod( @floor(s3),32768 ) ,136) = 111;</p><p>@mod( @mod( @floor(s4),32768 ) ,136) = 112;</p><p>@mod( @mod( @floor(s5),32768 ) ,136)= 24;</p><p>@mod( @mod( @floor(s6),32768 ) ,136) = 102;</p><p>@mod( @mod( @floor(s7),32768 ) ,136) = 82;</p><p>!..............;</p><p>end</p>
    复制代码
    你如果将程序改为上面的形式,就可以运行,你要注意整数是有最大值上限的

    数学建模社会化
    回复

    使用道具 举报

    瞧红尘        

    1

    主题

    4

    听众

    9

    积分

    升级  4.21%

  • TA的每日心情
    郁闷
    2013-9-2 10:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    madio 发表于 2013-8-31 08:19
    你如果将程序改为上面的形式,就可以运行,你要注意整数是有最大值上限的

    对于溢出,刚试验了一下。
       数量级过大会报205错误。不是这个原因。
    回复

    使用道具 举报

    瞧红尘        

    1

    主题

    4

    听众

    9

    积分

    升级  4.21%

  • TA的每日心情
    郁闷
    2013-9-2 10:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    wujianjack2 发表于 2013-8-30 22:48
    楼主你好,抱歉我没有解决你的问题。
       如果你还继续看的话这里我给出我的几点建议:
       一.以我目前 ...

    这个是个复合非线性函数。求解的是 0-0xffffffff 范围的整数值。
    听说lingo主要是线性求解。

    我用MATLAB,Mathematica试试。感谢了
    回复

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    很明显是超过了上限,你可以将初始值放在你要的解附近进行求解就看出来了

    点评

    瞧红尘  另外,我重新下载了一个lingo,发现不会直接出错,而是一直运行..... 可能是选项配置的问题.  详情 回复 发表于 2013-9-2 11:04
    回复

    使用道具 举报

    瞧红尘        

    1

    主题

    4

    听众

    9

    积分

    升级  4.21%

  • TA的每日心情
    郁闷
    2013-9-2 10:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    madio 发表于 2013-8-31 18:42
    很明显是超过了上限,你可以将初始值放在你要的解附近进行求解就看出来了

    关键问题就是这三个数范围都是0-0xffffffff
    自己写程序用循环嵌套来求,好像要运行,预计百万年才能有结果...
    回复

    使用道具 举报

    瞧红尘        

    1

    主题

    4

    听众

    9

    积分

    升级  4.21%

  • TA的每日心情
    郁闷
    2013-9-2 10:56
  • 签到天数: 1 天

    [LV.1]初来乍到

    madio 发表于 2013-8-31 18:42
    很明显是超过了上限,你可以将初始值放在你要的解附近进行求解就看出来了

    另外,我重新下载了一个lingo,发现不会直接出错,而是一直运行.....
    可能是选项配置的问题.
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-23 17:26 , Processed in 1.009914 second(s), 101 queries .

    回顶部