如图所示,两梯子交叉,长度分别为x和y,分别从两个墙角搭到另外一边的墙壁上,梯子交叉点距离地面高度为h
墙壁跟地面是垂直的,地面长度为w
有趣的是,在0
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
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13438681/viewspace-678010/ ,如需转载,请注明出处,否则将追究法律责任。