设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1347|回复: 5
打印 上一主题 下一主题

[已经解决] 求这段程序的最小返回值

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2011-8-21
帖子
51
跳转到指定楼层
1
发表于 2012-1-14 11:36:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 受pia专用ID 于 2012-1-14 11:50 编辑

编程学得还好,数学太差,求解。在 x1,y1,sx1,sy1,x2,y2,sx2,sy2 不变的条件下,求t为何值时,下列程序返回值最小?(用包含x1,y1,sx1,sy1,x2,y2,sx2,sy2 的程序表示)。
  1. def distance(x1, y1, sx1, sy1, x2, y2, sx2, sy2, t)
  2.   return Math.sqrt((x1 + t*sx1 - (x2 + t*sx2))**2 + (y1 + t*sy1 - (y2 + t*sy2))**2)
  3. end
复制代码

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

2
发表于 2012-1-14 11:50:32 | 只看该作者
本帖最后由 feizhaodan 于 2012-1-14 12:00 编辑

因该什么都行吧。。。毕竟两个都有平方。。。
好吧无视这个初3小孩吧没看好要求OTL
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
987 小时
注册时间
2011-8-17
帖子
894
3
发表于 2012-1-14 15:27:19 | 只看该作者
当t=-(2*x2*sx2+2*y2*sy2+sy1+sx1)/(2*(sx2**2+sy2**2))时,返回值最小为
(2*x2*sx2+2*y2*sy2+sy1+sx1)**2/(4*(sx2**2+sy2**2))+x2**2+y2**2+x+y

很多年么算这么长的式子了……
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
58 小时
注册时间
2011-8-21
帖子
51
4
 楼主| 发表于 2012-1-14 19:50:59 | 只看该作者
peterburg 发表于 2012-1-14 15:27
当t=-(2*x2*sx2+2*y2*sy2+sy1+sx1)/(2*(sx2**2+sy2**2))时,返回值最小为
(2*x2*sx2+2*y2*sy2+sy1+sx1)**2/ ...

采纳你吧。不过我很想知道过程。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
65
在线时间
987 小时
注册时间
2011-8-17
帖子
894
5
发表于 2012-1-14 22:21:48 | 只看该作者
受pia专用ID 发表于 2012-1-14 19:50
采纳你吧。不过我很想知道过程。

原始展开成多项式,形式为f(t)=a*t**2+b*t+c,在此式中,a=sx2**2+sy2**2,故函数图象开口向上因此当t=-b/(2a)时,函数取得最小值,代入计算即可。
回复

使用道具 举报

Lv3.寻梦者

酱油的

梦石
0
星屑
1035
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

6
发表于 2012-1-15 09:45:07 | 只看该作者
目測LS算錯。

答案應該是:
       x1*(sx2 - sx1) + x2*(sx1 - sx2) + y1*(sy2 - sy1) + y2*(sy1 - sy2)
t =------------------------------------------------------------------------------------------
        (sx1 -  sx2)**2 + (sy1 - sy2)**2

求導算出來的
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-12-27 17:19

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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