24小时热门版块排行榜    

CyRhmU.jpeg
查看: 658  |  回复: 18
当前主题已经存档。

yudf65

金虫 (正式写手)

[交流] 【求助】新手求助一个小程序【已解决】

求助:
假设a=1:5 b=1:9 y=a+b
求:y取最大值时的a、b的值各是多少?(要求最大值也显示出来)谢谢!
用matlab语言

[ Last edited by wangen994 on 2009-8-16 at 22:05 ]
回复此楼
为什么我的眼里满含泪水?因为我对这土地爱的深沉
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stupid

新虫 (职业作家)

这个这个

是不是题目错了还是我理解错了?
别人笑我忒疯癫,我笑别人看不穿;不见五陵豪杰墓,无花无酒锄做田。
2楼2009-08-11 00:57:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianlangxingaa

铁杆木虫 (著名写手)


rjjy(金币+1,VIP+0):欢迎交流啊 8-11 09:14
program main

implicit none

integer i, j,k,kk

kk = 0
do i = 1,5
do j=1,9
k = i + j
if (k>kk) then
kk = k
end if
end do
end do

print*, i, j , kk

end
3楼2009-08-11 01:43:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianlangxingaa

铁杆木虫 (著名写手)

建议发帖人学下fortran或C,这是最基本的东西

对以后的工作肯定有用

cheers
4楼2009-08-11 01:44:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★
rjjy(金币+1,VIP+0):谢谢交流 8-11 09:14
gwdavid(金币+2,VIP+0):3q 8-13 18:58
3楼代码没问题吗?如果是fortran中,这样计算出来,显示的结果是
6 10 14
而且,如果最大值不是最后一个组合的话,显然这个程序还是有点小问题的吧。下面这样行不行,我套用3楼的fortran代码,matlab中如何写,我不太清楚,没用过:
CODE:
program main
implicit none
integer i, j,k,im,jm,kk

kk = 0
do i = 1,5
do j=1,9
    k = i + j
    if (k>kk) then
        kk = k
        im=i
        jm=j
    end if
end do
end do

print*, im, jm , kk

end

[ Last edited by argo on 2009-8-12 at 10:44 ]
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
5楼2009-08-11 06:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tianlangxingaa

铁杆木虫 (著名写手)

呵呵,不好意思,忘记保存变量了,楼上的是对的,我的代码没测试,就直接写下来了,嘿嘿

谢谢纠正
6楼2009-08-11 15:19:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yudf65

金虫 (正式写手)


0112358(金币+1):鼓励交流讨论
引用回帖:
Originally posted by argo at 2009-8-11 06:47:
3楼代码没问题吗?如果是fortran中,这样计算出来,显示的结果是
6 10 14
而且,如果最大值不是最后一个组合的话,显然这个程序还是有点小问题的吧。下面这样行不行,我套用3楼的fortran代码,matlab中如何写, ...

你好!
你的代码有问题!
请你再调试一下,我用的是f95
不管是用m语言还是f95,我想问下到底该怎么返回取最大值时的那两个值?谢谢!
为什么我的眼里满含泪水?因为我对这土地爱的深沉
7楼2009-08-11 17:21:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

秦林

铜虫 (初入文坛)

★ ★ ★ ★ ★
yudf65(金币+3,VIP+0):用M语言编的程序,运行很好!这只是个简单的例子,举一反三,希望你能理解 8-12 11:04
gwdavid(金币+2,VIP+0):3q 8-13 18:58
求助:
假设a=1:5 b=1:9 y=a+b
求:y取最大值时的a、b的值各是多少?(要求最大值也显示出来)谢谢!
用matlab语言
max=0;
k=[0,0];
for a=1:5
   for b=1:9
       y(a,b)=a+b;
       if max             max=y(a,b);
            k(1)=a;
            k(2)=b;
       end
end
end

max
k

程序经过调试,应该没问题。不过,我有疑问,这是哪里的问题?5+9能看的出来,为什么还要计算?
想去趟西藏 也想在大理晒太阳 现在么 在这里乖乖读研
8楼2009-08-12 10:15:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★
yudf65(金币+2,VIP+0):用fortran语言编写也不错,但你的好像是f77的,我用的是f95!输出的时候最好不用print 8-12 11:05
gwdavid(金币+1,VIP+0):3q 8-13 18:59
引用回帖:
Originally posted by yudf65 at 2009-8-11 17:21:

你好!
你的代码有问题!
请你再调试一下,我用的是f95
不管是用m语言还是f95,我想问下到底该怎么返回取最大值时的那两个值?谢谢!

谢谢提醒,原来认为这么简单的代码,就没有经过测试。刚才特地测试了一下,原来里面的两个变量写错了,现已改过。汗
把原来11、12行的
CODE:
        im=a
        jm=b

改成
CODE:
        im=i
        jm=j

即可。
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
9楼2009-08-12 10:47:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

argo

铁杆木虫 (著名写手)

上善若水

★ ★ ★ ★ ★
0112358(金币+1,VIP+0):鼓励交流讨论 8-12 20:54
gwdavid(金币+4,VIP+0):欢迎讨论 8-13 18:59
引用回帖:
Originally posted by 秦林 at 2009-8-12 10:15:
求助:
假设a=1:5 b=1:9 y=a+b
求:y取最大值时的a、b的值各是多少?(要求最大值也显示出来)谢谢!
用matlab语言
max=0;
k=[0,0];
for a=1:5
   for b=1:9
       y(a,b)=a+b;
       if max

我个人怀疑这个问题应该是a从五个元素中取值,b从9个元素中取值,这14个元素的值应该不是一下子就知道的,要不然,这个题目没有什么意思。

matlab与fortran的代码基本上应该是一样的,思路相同,语法稍有区别而已。

另回7楼的朋友:思路应该就是以上两个代码所表述的(当然可能还有其他的方法),先给出一个初值(这个初值也许要有所选择,如果比所有的结果都大,就会出问题,这个可能要对问题的结果有个初步的判断),当两个数加起来比这个值大时,就用新的和替换这个原来的值,同时把这时候的两个数保存起来;当循环过程出来新的更大的值,则用新的值替换原来的三个旧值。循环结束后,这三个变量就是所要求的值。
不知道以上回答是否正确,仅供其他朋友参考。
居善地,心善渊,与善仁,言善信,正善治,事善能,动善时。
10楼2009-08-12 10:54:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yudf65 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见