ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于那个梯子问题

关于那个梯子问题

原创 Linux操作系统 作者:yaubin 时间:2010-11-12 16:35:54 0 删除 编辑

如图所示,两梯子交叉,长度分别为x和y,分别从两个墙角搭到另外一边的墙壁上,梯子交叉点距离地面高度为h
墙壁跟地面是垂直的,地面长度为w

有趣的是,在0求所有满足条件的整数组合(x,y,h,w)。

 

WITH a AS
 (SELECT ROWNUM r
  FROM   dual
  CONNECT BY LEVEL < 167),
b AS
 (SELECT aa.r x,
         bb.r y
  FROM   a aa,
         a bb
  WHERE  aa.r < bb.r), --x,y 的取值情况
c AS
 (SELECT a.r w,
         b.x,
         b.y
  FROM   a,
         b
  WHERE  a.r < b.x), --x,y,w  取值情况
d AS
 (SELECT x,
         y,
         w,
         SQRT(y * y - w * w) * SQRT(x * x - w * w) /
         (SQRT(y * y - w * w) + SQRT(x * x - w * w)) h
  FROM   c) ---由x ,y,w 和计算出的h的值
SELECT *
FROM   d
WHERE  Length(d.h) < 4 --判定h为整数
/*偷懒的简单判断 h如果为整数最多
为3位,如果不是开平方的一般为无理数肯定很长,
如果严格判断整数不能这么写*/

结果:

X  ,  Y    , W  , H
70 ,119 ,56 ,30
87 ,105, 63 ,35
100 ,116, 80 ,35

 

p_309_ladders.gif

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13438681/viewspace-678010/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 砝码问题
请登录后发表评论 登录
全部评论

注册时间:2010-11-12

  • 博文量
    3
  • 访问量
    1652