《莲花井》,作者: 阿·卡赞采夫、马·西亚宁 〔阅读〕
此碑文系太阳神祭司所刻。这堵墙后有一口圆形莲花井,边上有一块石头、一把刻刀和两根细长棍子。这两根棍子一根长3个度量单位,另一根为2个度量单位。如果将棍子一端抵住井的底角斜靠在井里,两根棍子正好在水面交叉,水面距离井底为1个度量单位。谁能用这两根棍子测出莲花井井口的最长直线的长度,谁就能成为太阳神祭司。只要懂得了题意,这堵墙就会打开放他进去,但一走进去,出口就封死了。他把所得的结果用刀刻在石头上,从通气的小孔把石头递出来,由最高祭司来检验他所刻的数字是否正确。
“非升即死”。这些研究生与导师们的自杀诱因中,排名前三的分别为:学术压力(65%),个人病史与信仰(28%)和家庭问题(10%)…… 跳楼是学术界自杀的最主要方式(89例,占68.5%),自杀者年龄越大,选择跳楼的倾向似乎也越大。
德列依耶把杰特里耶带到石穴里,地上写满了方程式。他用r来表示两根棍子的交叉点到短棍子在井底末端的距离。他设想,棍子的一端垂直移动,另一端按水平线在井底移动。根据高等数学的原理可以得知,距离为r的点会沿着椭圆曲线移动……井口直径为1.231个度量单位。
最后结果是37/30,与4000年后人们用高等数学计算出来的数只相差两个基点(2‰)。1、2、3出来了1.231哦。
下面是相似三角形的方法:
画图程序。字用kolourpaint写上去的
- s = lambda x: int(100 * x)
- from PIL import Image, ImageDraw
- img = Image.new('RGB', (s(1.3), s(3)), 'white')
- draw = ImageDraw.Draw(img)
- from math import sqrt
- d = 1.231; d2 = d * d; d = s(d)
- a = s(sqrt(9 - d2))
- b = s(sqrt(4 - d2))
- x = s(d / b) # 相似三角形
- w = 2
- c = (0, 0, 0)
- draw.line(((0, 0), (0, a)), c, w)
- draw.line(((0, a), (d, a)), c, w)
- draw.line(((d, a), (d, a - b)), c, w)
- draw.line(((0, 0), (d, a)), (255, 0, 0), w)
- draw.line(((0, a), (d, a - b)), (0, 255, 0), w)
- draw.line(((x, a), (x, a - s(1))), (128, 0, 0), w)
- img.save('w.png')
复制代码 View Code以前我用sympy解这个方程得到了解析解,特别长的一串根式套根式,今天sympy半天出不来,所以验证和nsolve:- d = 1.23118
- for i in range(100):
- d += 1E-6
- x = (9 - d*d) ** 0.5
- y = (4 - d*d) ** 0.5
- e = abs(x + y - x*y)
- if e < 1E-6: print(d, e); break
- from sympy import *
- d = symbols('d')
- x = (9 - d*d) ** 0.5
- y = (4 - d*d) ** 0.5
- print(nsolve(x + y - x*y, d, 1.2))
- #print(solve(x + y - x*y, d))
- t = symbols('t')
- x = (9 - t) ** 0.5
- y = (4 - t) ** 0.5
- print(solve(x + y - x*y, t)[0] ** 0.5)
- 1.2311859999999994 4.461343507955462e-07
- 1.23118572377867
- 1.23118572377867
复制代码 〔这个〕网站公式可以换行。上述公式的LaTex代码如下:
- \frac{1}{x}=\frac{b}{d}\\[12pt]
- \frac{1}{y}=\frac{a}{d}\\[12pt]
- \frac{1}{x}+\frac{1}{y}=1\\[12pt]
- x+y=xy
复制代码 View Code〔替换法和sympy解方程5例〕
这样算可以(好像以前更长的):
>>> e=sqrt(9-t)+sqrt(4-t)-sqrt((9-t)*(4-t))
>>> e2=solve(e,t)[0]
>>> e2.evalf()
1.51581828643640
>>> e2
-sqrt(1225/(18*(50*sqrt(39)/9 + 43525/216)**(1/3)) + 37/3 + 2*(50*sqrt(39)/9 + 43525/216)**(1/3))/2 - sqrt(-2*(50*sqrt(39)/9 + 43525/216)**(1/3) - 1225/(18*(50*sqrt(39)/9 + 43525/216)**(1/3)) + 16/sqrt(1225/(18*(50*sqrt(39)/9 + 43525/216)**(1/3)) + 37/3 + 2*(50*sqrt(39)/9 + 43525/216)**(1/3)) + 74/3)/2 + 11/2
忘记开方了。 1.51581828643640**0.5 = 1.231185723778667
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |