趣味三角——第2章——弦

news2024/11/15 23:29:47

目录

2.1 三角学的雏形与和弦表的产生

2.2 解读残缺粘土板“Plimpton 322”上的三角学


知识来自影子,影子来自 磬折形(The knowledge comes from the shadow, and the shadow comes from the gnomon)

——摘自<<Chou-pei Suan-king>>(周髀(bì)算经)

引用自David E. Smith, << History of Mathematics>>,卷2第603页

2.1 三角学的雏形与和弦表的产生

单独考虑时,线段和角的行为很简单:沿同一条直线端对端放置的两条线段的组合长度是两条线段各自长度的总和,围绕平面中同一点的两次旋转的组合角度测量值是两个独自旋转角的总和。只有当我们将这两个概念结合在一起的时候,复杂性就出现了:等距离(spaced)排列的梯级(rungs of a ladder),当从一个定点看,在观察者的眼里不能组成相同的角(如图7),而反过来,对于相同的角,当投影到一条直线上时,不会截断为相等的线段(如图8)。初级平面三角学(Elementary plane trigonometry)——大致说来,指的就是截止十六世纪为止已知的三角学——关注的是角度和线段之间的数量关系,尤其是在三角形(triangle)实际上,这个精当的数学术语单词“trigonometry”来自古希腊单词“trigonon”(=triangle,三角”)和“metron”(=measure度量”)(即,“三角的度量”)。[1]

-----------------------------图7 等距垂直增量对应不等角度-----------------------

-----------------------------图8 相等角度对应不等垂直增量---------------------------------------

正如我们在前面已经提及过的,早在公元前二千年,埃及人在建造他们的金字塔时,就使用了一种原始的三角学。在美索不达米亚(Mesopotamia),巴比伦(Babylonian)的天文学家(astronomers)对恒星(stars)的升起和落下、行星(planets)的运动以及日食(solar eclipses)和月食(lunar eclipses)进行了细致的记录,所有这些都要求熟悉在天球(celestial sphere)上测量的角距(angular distances)。[2] “磬(qìng)折形(gnomon)”,又称“日晷(guǐ)”,是一种简单的装置,用于根据垂直杆(rod)投射的影子的长度来判断小时,根据历史学家希罗多德(Herodotus,约公元前450年)的说法,早期的希腊人就知道这种方法,他们是从巴比伦人(Babylonians)那里学来的。日晷本质上是一种用于计算余切函数(cotangent function)的模拟设备(analog device):

假如(见图9)太阳位于地平线上方与地平面成角α度的高程(altitude)处,我们用h表示垂直杆的高度,用s表示影子的长度,则s = hcotα , 因此,s与cotα是成比例的。显然,古人对余切(cotangent)函数不是很感兴趣,他们更感兴趣的是使用这个装置作计时器(timekeeper);事实上,通过测量午时影子长度的每日变化,日晷也可以用于确定一年中的日期。

-----------------------------------------图9 日晷装置示意图-------------------------------

米利都人泰勒斯(Thales of Miletus,约公元前640–546年),是古希腊哲学家和数学家的开山鼻祖,据说,他已经通过比较日晷投影的影子算出了金家塔的高度,正如Plutarch在他的<<Banquet of the Seven Wise Men>>(七位智者的宴会)中所说的那样,一位客人对Thales说:

Whereas he [the king of Egypt] honors you, he particularly admires you for the invention whereby, with little effort and by the aid of no mathematical instrument, you found so accurately the height of the pyramids. For, having fixed your staff erect at the point of the shadow cast by the pyramid, two triangles were formed by the tangent rays of the sun, and from this you showed that the ratio of one shadow to the other was equal to   the ratio of the [height of the] pyramid to the staff [3](他[古埃及国王]对你表示敬意,他特别钦佩你的发明创造,你不费吹灰之力,也不借助任何数学工具,就如此准确地求得了金字塔高度。因为,你将你的手仗竖立在金字塔投影的阴影点处,太阳光线的切线形成了两个三角形,由此你证明明了一个投影和另一个投影的比率与金字塔对手仗的比率是相等的)。

然而(again),这里并没有直接涉及三角学,仅有两个相似的直角三角形。尽管如此(still),这种“投景估算法(shadow reckoning)”在古人中还是广为人知的,可以称得上是三角学的先驱(precursor)(或者雏形)。后来,这种简单的方法被成功地用于测量地球的尺寸,而在再后来,应用于测量恒星之间的距离(见第五章)。

“trigonometry”这个词其现代意义上的三角学始于尼西亚(Nicaea)的喜帕恰斯(Hipparchus)(大约公元前190-120年),被认为是古代(antiquity)最伟大的天文学家(astronomer)。与许多古希腊学者一样,Hipparchus的著作主要是通过后代作者的引用才为我们所知,Alexandria(亚历山大巷)的Theon(约公元390年)关于Ptolemy的<< Almagest>>(天文学大成)的评注,便是这种情况。Hipparchus出生于Nicaea小镇(今土耳其西北部的Iznik(伊兹尼克)),但是在爱琴海(Aegean Sea)的罗德岛(Rhodes)度过了他的大部分时光,在那里,他建立了一个天文台(observatory)。使用他自己发明的装置,他利用天体的经度(longitude)和纬度(latitude)确定了大约一千颗恒星的位置,并在地图上记录下它们——第一本准确的恒图(他可能是在公元前134年对一颗新星(nova)的观察而被引导到这个项目的——一颗爆炸的恒星在以前从未见过的地方变得可见)。为了按照这些恒星的亮度对它们进行分类,Hipparchus引入了一个恒星亮度等级(scale)“星等(magnitude)”,最亮的恒星标为1星等,最暗的恒星标为6星等;尽管这个等级经过修改并大大扩展了范围,但时至今日使在使用。人们还认为Hipparchus发现了分点岁差(the precession of the equinoxes)——天极(celestial poles)每 26,700 年一次的缓慢圆周运动;现在已知这种表观运动(apparent motion)是由地轴自身的摆动(wobble)引起的(牛顿根据他的万有引力理论正确地解释了这种现象)。他改进并简化了旧的周转轮(epicylces)系统,该系统由亚里士多德(Aristotle)发明,用于解释观察到的环绕地球的行星(planets)的运动(见第7章);这实际上是他的前任(predecessor)Aristarchus的撤退,他已经设想了一个以太阳而不是地球为中心的宇宙。

为了能够完成他的计算,Hipparchus需要一个三角学比率表,但是他无处可觅得这张表:不存在现成的这种表,因此,他必须自己通过计算制定一张这样和表。他将每一个三角形——平面的(planar)或者球面的(spherical)——视为是内接于(inscribed)圆中的,因此,三解形的每边都成了一条弦(chord)为了计算三角形的各个部分,你就必须求得作为圆心角函数的弦长,而这就成了接下来几个世纪三角学的主要任务作为一个天文学家,Hipparchus主要关注的是球面三角形,但他一定知道很多平面三角的公式,其中就包括恒等式(用现代记法)

sin^{2}\alpha +cos^{2}\alpha =1

sin^{2}\left ( \alpha /2 \right )=(1-cos\alpha )/2

以及

sin(α ± β) = sin α cos β ± cos α sin β。当然,这些公式是通过纯几何方法推导出来的,并表述为关于圆的角度和弦的定理(例如,第一个公式,是毕达哥拉斯(Pythagorean)定理(勾股定理)三角等式);在第6章中我们还会回到其中的一些公式。Hipparchus写了12本关于圆内弦的计算的著作,但是都遗失了。

我们所见到的第一部完整的关系三角学的主要著作是由克劳迪乌斯·托勒密(Claudius Ptolemaeus)编写的<<天文学大成>>(Almagest),通常称为托勒密(Ptolemy)(大约公元85-165)[4]。Ptolemy生活在Alexandria,这儿是希腊化(Hellenistic)世界的知识中心,但是他的生平事迹不详(他与公元前323年亚历山大大帝()死后统治埃及的托勒密王朝(Ptolemy dynasty)无关)。相对于古希腊大部分将他们的学科视为纯粹的、抽象科学的数学家而言,Ptolemy是古希腊第一位且是最伟大的一位应用数学家。他的著作涉及天文学(astronomy)、地理(geography)、音乐(music),可能还有光学(optics)。他根据Hipparchus的工作编制了一份恒星表(catalog),在其中,他列出并命名了48个星座(constellations);这些名字在今天仍在沿用。在他的著作<<地理学>>中,Ptolemy系统性地使用了地图投影技术(将球形地球映射到一张平面纸上的系统),这种方法是由Hipparchus引入的;他绘制的当时已知世界的地图,带有完整的经度和纬度网格,是一直到中世纪的标准世界地图(见图10)。然而,Ptolemy严重地低估了地球的大小,他拒绝了埃拉托色尼(Eratosthenes)的正确估计,认为其太大(见第5章)。事后看来,这是一件幸事(blessing),因为它促使(spurred)哥伦布(Columbus)尝试从欧洲向西航行到亚洲,这一努力带来了新大陆(the New World)的发现。

----------------------------------------------图10 Ptolemy的世界地图----------------------------------------------

Ptolemy的最伟大著作是<<天文学大成>>,众所周知,是他那个时代数理天文学的集大成者,他是基于静止不动的地球位于宇宙中心和天体按规定轨道(地心系统)围绕地球运动的假设。<<天文学大成>>包括13部分(或13部“书”),因此让人想起欧几里德几何原理(Euclid’s Elements)的13本书。相似性更甚,因为这两部作品很少包含作者自己的发现;相反,它们是各自领域知识状况的汇编,因此是基于其前辈的成就(在Ptolemy的著作中,记载的主要是Hipparchus的成就)。这两部作品都对几代思想家产生了巨大影响;但与迄今为止构成经典几何学核心的<<几何原理>>不同,一旦哥白尼(Copernicus)的日心(heliocentric)系统被接受,天文学大成就失去了它的大部分权威。因此,它在今天的知名度远不如<<几何原理>>——这是不幸的事态,因为<<天文学大成>>是一个很好的阐述模型,甚至可以作为现代作家的榜样。

词“Almagest”有一个有趣的演化过程:Ptolemy自己取的书名,翻译过来是“数学语法(mathematical syntaxis)”,后人加入了最高级的形容词“megiste”(“greatest”)。当阿拉伯人将其翻译成他们自己的语言的时候,他们保留了这个词“megiste”,但是加入了连词“al”(“the”),在适当的时候,它就成了众所周知的形式“Almagest”了。[5] 在1175年,阿拉伯版本又被翻译成拉丁语版,从此成为地心世界画景的基石;它主导了欧洲的科学和哲学思想,一直持续到16世纪,并成为罗马教会(Roman Church)的正典(canon)。

我们在这里特别感兴趣的是Ptolemy的和弦表(table of chords),它是<<天文学大成>>第一卷第10章和第11章的主题。他的和弦表给出了圆中圆心角以半度为幅度从0°到 180°变化时圆心角函数正对向的弦的长度(见图11)。

---------------------------------------------图11 d = chord α = 2rsin (α/2)-------------------------

想一想就会发现这本质上是一张正弦表:用r表示圆的半径,α表示圆心角,用d表示弦的长度,我们有

d = 2rsin(\alpha /2) ----------------------------(1)

Ptolemy取圆的直径为 120 个单位, 因此,r = 60(这个选择的原因很快就会清楚)。则方程(1)就成了d = 120sin(α/2)。因此,除了比例因子120之外,我们还有一张sin(α/2)的值表,因此(通过角度乘以2)得到了sinα的值表。

Ptolemy在计算他的弦表的时候,他使用了巴比伦人的60进制或者基于60的记数系统,这是他那个年代可获得的唯一适合处理分数的记数系统(十进制记数系统在其一千年之后才诞生)。但是,他将它与古希腊记数系统结合起来使用,每个古希腊字母赋一个数值:α = 1 β = 2等等。这使得阅读他的弦表有点繁琐,但是稍加练习你就可以很容易地精通它(见图12)。例如,对于7°的角(用古希腊字母ζ表示),Ptolemy的弦表给出的弦长是7;19,33(写作ζ  ιθ  λγ,字母 ιθλγ 分别表示10,19,30,和30),这是十六进制数7 + 19/60 + 33/3600 的现代记法(在表达式“7;19,33”中,分号(;)用于将数的整数部分和小数部分分开,逗号(,)用于分隔60进制的位置)。当采用我们的10进制记数系统书写的时候,这个数非常接近等于7.32583;弦的实际长度四舍五入到五位,是7.32582;这是相当卓著的成就。

---------------------------------------------图12 Ptolemy的弦表片段图-------------------------

Ptolemy的弦表给出的弦长达到两个60进制位或者1/3600的精度,这个应用足够大部分的应用场景,甚至是今天的应用场景。此外,这个表还有一个“sixties”列,它允许使用者在连续条目之间进行插值(interpolate):它给出了从一个条目到下一个条目的弦长的平均增量(mean increment),即增量除以30(连续角度之间的间隔,以弧度的“分”为单位进行度量)。[6] Ptolemy在计算他的弦表时,使用了前面提到的与Hipparchus有关的公式,所有的这些公式在<<天文学大成>>中都有证明。[7]

Ptolemy现在展示了如何使用该表来求解任何平面三角形,前提是至少有一条边是已知的。Hipparchus之后,他认为三角形内接于一个圆中。我们将在这里展示最简单的情况,即直角三角形。[8] 我们用ABC表示这个直角三角形(如图13),C为直角。

----------------------------------------------图13 内接于圆中的直角三角形-------------------------

由初等几何学的知识,我们可以知道,斜边(hypotenuse)c = AB是通过ABC的圆的直径,用O表示圆的中心(即直径AB的中点),一个著名的定理说∠BOC = 2∠BAC = 2α假设ac已知。我们首先计算出2α并使用弦表求得对应的弦的长度因为这个弦表假设c = 120,我们必须用比率c/120去乘以这个求得的长度。这里给了我们边 a = BC。余下的边 b = AC 则可以通过毕达哥拉斯(Pythagorean)定理(勾股定理)求得,并且角 β = ∠ABC 可以从方程 β = 90°- a 求得。相反,假如已知两条边,比如,已知ac,我们计算出比率a/c,再乘以120,则通过弦表反查便可求得2α因此也就求得了α

这个过程可以用公式概括为

a = \left ( c/120 \right )\left ( chord\right ) 2\alpha--------------------------(2)

其中,chord 2α 是圆心角2α对应的弦的长度。这导致了一个有趣的观察:在60进制(以60为基底)记数系统中,乘以或者除以120等效于在10进制系统中乘以或者除以20:我们简单地乘以或除以2并将该点分别向右或向左移动一位。因此,方程(2)要求我们乘以角度的2倍,查询弦表,然后再将结果除以2得到所求的角。因为一次又一次地这样做会变成一件苦差事(chore),所以如果有人通过将一半和弦制表,以此作为双倍角度的函数,从而简化这项工作,这只是时间问题,换句话说,也就是变成了我们的现代的正弦函数

注释和来源:

1. 为了证明角度和线段之间的关系远非简单,请考虑以下定理:如果三角形中的两个角平分线长度相等,则该三角形是等腰三角形。看似简单,其证据甚至连经验丰富的从业者都难以理解。参见H.S.M. Coxeter的<<Introduction to Geometry>>(几何导论)( New York: John Wiley,1969年),第9和第420页。

2. 巴比伦天文学的一个很好的总结,参见Otto Neugebauer的著作<<The Exact Sciences in Antiquity>>(古代的精密科学)( 1957年第二版,New York: Dover,1969),第5章。

3. 例如引用自David Eugene Smith的<<History of Mathematics>>(数学史)(1925年,报告,New York: Dover,1958),卷2,第602-603页。

4. Asger Aaboe在其书<<Episodes from the Early History of Mathematics>>(早期数学史的片段) (1964年,New York: Random House,1964)给出它的字名为“Klaudios Ptolemaios”,其接近古希腊的发音,我使用更通用的拉丁语拼写法“Ptolemaeus”。

5. Smith(在<<History of Mathematics>>卷1第131页)指出,因为前缀“al”指的是“the”,“说‘the Almagest’类似于说‘the the-greatest’。” 不管怎么说,用词不当(misnomer)是如此普遍,所以我将其保留在这里。

6. 此列类似于对数表中的“比例部分”列。

7. 全面讨论Ptolemy如何编制他的表格,参见Aaboe的<<Episodes>>(片段),第112-116页。

8. 其他情况可以通过将三角形分解成直角三角形来处理,参见同7.的著作。

9. 从直角三角形ABC来看(图13),其中,a = c sin α 试对比方程(2),我们有sin α = (chord 2α)/120。

2.2 解读残缺粘土板“Plimpton 322”上的三角学

Plimpton 322:是最早的三角函数表吗?

埃及人在纸莎(suō)草纸和木头上书写记录,而中国人在树皮(bark)和竹简(bamboo)上书写记录——这些都是易腐烂的材料——巴比伦人使用粘土板(clay tablets),这是一种几乎(virtually)坚不可摧的(indestructible)介质。因此,我们拥有的巴比伦文献数量远多于任何其他古代文明的文献,我们对其历史的了解——他们的军事行动、商业交易和科学成就——也更加丰富。在世界各地的博物馆中,估计有 500,000 块粘土板,其中约 300 块涉及数学问题。它们分为两种:“表格文本”和“问题文本”,后者处理各种代数和几何问题。“表文”包括乘法表、倒数表(tables of reciprocals)、复利表(compound interest)、各种数列表; 他们证明巴比伦人拥有非常高的计算技能。

我们接触到的最有趣的粘土板之一是“Plimpton 322”,如此称谓是因为它在纽约哥伦比亚大学普林顿“G.A. Plimpton Collection”收藏集中编号为“Plimpton 322”(见图14)。它可以追溯到汉谟拉比王朝(Hammurabi dynasty)的古巴比伦时期,大致在公元前1800-1600年。存细分析上面的文本可以发现,它涉及毕达哥拉斯三元组(Pythagorean triples)——使得等式c^{2}=a^{2}+b^{2}成立的整数a, b, c;例如,(3,4,5), (5,12,13), 的(16,63,65)。由于毕达哥拉斯定理,或者更准确地说,其逆定理——这样的三元组可以用来构成具有整数边的直角三角形。

不幸的是,粘土板的左端已损坏并部分丢失,但边缘发现的现代胶水(glue)痕迹证明,缺失的部分是在发现粘土板后折断的,也许有一天它会出现在古董市场上。由于细致的学术研究,缺失的部分已经部分重建,我们现在可以相对轻松地阅读该表。然而,我们应该记住,巴比伦人使用的是六十进制(以 60 为基底)的记数系统,他们没有零的符号; 因此,数字可能会以不同的方式解释,并且必须从上下文中推断出各个“数字”的正确位值。

--------------------------------------------------图14 Plimpton 322-------------------------

文字是用楔形文字(楔形)书写的,这些文字是用铁笔刻在湿粘土板上的。然后将湿粘土板放在烤箱中烘烤或在阳光下晒干,直到它变硬以形成永久记录。表 1 以现代符号再现文本,其中六十进制“数字”(它们本身以普通十进制表示法表示)以逗号分隔。共四栏,其中最右栏以原文“其名(its name)”字样为首,仅给出1至15行的序号。第二、三栏(从右至左数)为标题,分别为“求解对角线数”和“求解宽度数”;也就是说,它们给出了对角线的长度和矩形的短边,或者等价地给出了斜边的长度和直角三角形的一条边。我们将分别用字母 cb 标记这些列。例如,第一行显示条目 b = 1;59 和 c = 2;49 代表数字 1×60 + 59 = 119 和 2×60 + 49 = 169。快速计算然后给出三角形的另一边,例如,a=\sqrt{169^{2}-119^{2}}=120;因此,三元组(119,120,169)是一个毕达哥拉斯定理三元组。然而,在第三条线上,我们读到,b = 1,16,41 = 1×16^{2} + 16×60 = 4601 且 c = 1,50,49 = 1×60^{2}+ 50×60 + 49 = 6649 ;因此,a=\sqrt{6649^{2}-4601^{2}}= 4800,给出三元组(4601,4800,6649)。

-------------------------表1 Plimpton 322-------------------------

注:方括号中的数是重建的。

这个表中存在某些明显的错误。在第9行中,我们发现,b = 9,1 = 9×60+1 = 541 并且 c = 12,49 = 12×60+49 = 769,而这些数不能构成毕达哥拉斯定理三元组(第三个数字a不是整数)。但是,如果我们用8,1 = 481替换9,1,我们确实可以获得毕达哥拉斯定理三元组(481,600,769)。似乎这个错误只是一个“印刷”错误:抄写员一定是一时心不在焉,在他的软粘土上刻下了九个标记,而不是八个;但是,这一旦在阳光下晒干,他的疏忽便成为历史记载的一部分。然而,在第13行,我们有b = 7,12,1 = 7×60^{2}+12×60+1 = 25921是161的平方,数字161和289确定构成三元组(161,240,289)。似乎抄写员只是忘了对25921求平方根。在第15行,我们找到 c = 53,而正确的条目应该是该数字的两倍,或者106 = 1;46,产生三元组(56, 90, 106)。[1] 这些错误给人一种人性在过去4000年里没有改变的感觉:我们的匿名抄写员并没有比一个学生乞求他或她的教授在考

试中忽略“一个低级错误”更犯过失。[2]

最左边的列是最吸引人的。它的标题再次提到“对角线”一词,但其余文字的确切含义并未完全清楚。然而,在检查其条目后,一个惊人的事实浮出水面:此列给出比率(c/a)的平方,即,即,它是csc^{2}\alpha,其中,α是边a对应的角。我们针对第1行验证这一点。我们有b = 1,59 = 119且c = 2,49 = 169,据此,我们求得c = 120。因此,\left ( c/a \right )^{2}=\left ( 169/120 \right )^{2}= 1.983,四舍五入为3位十进制数。在第4列中对应的条目是

1,59,0,15=1 + 59\times (1/60) + 0\times (1/60^2) + 15 \times (1/60^3) =1.983 。

(我们应该再次注意到,巴比伦人没有使用符号来表示“空位”——我们的零——因此一个数字可以有多种不同的解释方式;正确的解释必须从上下文中推导出来。在刚刚给出的示例中,我们假设前导 1 代表单位而不是六十。) 读者可以检查此栏中的其他条目并确认它们等于\left ( c/a\right )^{2}

出现了几个问题:表中条目的顺序是随机的,还是遵循某种隐藏的模式?巴比伦人是如何找到构成毕达哥拉斯三元组的那些特定数字的? 他们为什么对这些数字感兴趣——特别是,对比率\left ( c/a\right )^{2}感兴趣——且是最为感兴趣?第一个问题相对容易回答:假如你一行一行地对比\left ( c/a \right )^2的值,你可以发现,它们稳定地从1.983减少到1.387,因此,看起来似乎条目的排列顺序取决于这个序列。此外,如果我们计算第 4 列中每个条目的平方根——即,即比率c/a = csc α——则求得对应的角α,我们发现,α稳定地从45°增加到58°。因此,我们文本的作者似乎不仅对寻找毕达哥拉斯三元组感兴趣,而且对确定对应的直角形的比率c/a感兴趣。如果粘土板缺失的部分出现,这一假说可能有一天会得到证实,因为它很可能包含缺失的 a 列和 c/a 列。

至于毕达哥拉斯定理三元组是如何被发现的,只有一种合理的解释:巴比伦人一定知道产生这些三元组的算法。设uv是任意两个正整数且u>v,则这3个数字

a = 2uv,b = u^2 - v^2 ,c = u^2 + v^2----------------------------------(1)

构成毕达哥拉斯定理三元组。(此外,如果我们要求 u v 是奇校验——一个偶数,另一个奇数——并且它们没有任何公因数,那么 a b; c是一个原始的毕达哥拉斯定理三元组,即 a b; c没有公因数。)  很容易确认数字 a; bc 由等式(1) 给出,满足等式c^{2}=a^{2}+b^{2};这个陈述的反面——每个毕达哥拉斯三元组都可以用这种方式找到——在数论的标准课程中得到了证明。Plimpton 322因此表明,巴比伦人不仅比毕达哥拉斯早一千年就熟悉毕达哥拉斯定理,而且他们知道数论(number theory)的基本原理,并拥有将理论付诸实践的计算技能。[3]

注释和来源:

(本节中的材料基于 Otto Neugebauer,<<The Exact Sciences in Antiquity>> (古代的精密科学)[1957 年;报告, New York:Dover,1969 年],第 2 章。另见 Howard Eves,<< An Introduction to the History of Mathematics>>(数学史导论) [Fort Worth:Saunders College Publishing,1992],第44-47页。)

1. 然而,这不是原始三元组,因为它可以简化为更简单的三元组 (28, 45, 53); 两个三元组代表相似的三角形。

2. 第 2 行出现第四个错误,其中条目 3、12、1 应为 1、20、25,从而产生三元组 (3367、3456、4825)。 这个错误一直无法解释。

3. 关于巴比伦人如何进行计算,请参见 Neugebauer, <<Exact Sciences>>(精密科学),第39-42页。

内容来源:

<<Trigonometric Delights>> 作者:Eli Maor

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175500.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

while循环——求100以内偶数和

1 问题 求100以内的偶数和。 2 方法 public class EvenNumber{ public static void main(String[] args){ int i 1; int sum 0; while(i < 100){ if(i % 2 0){ System.out.println(i); sum sum i; } i; } System.out.println("100以内的偶数和为&#xff1a;"…

Java-线程基础

Java 线程详解 一个程序至少需要一个进程&#xff0c;而一个进程至少需要一个线程&#xff0c;它也被称为主线程。 线程是程序执行流的最小单位&#xff0c;而进程是系统进行资源分配和调度的一个最小单位。 在单个进程中&#xff0c;可以拥有多个并发执行的线程&#xff0c…

MYSQL分页查询时没有用ORDER BY出现数据重复的问题

背景 产品反馈&#xff0c;用户在使用分页列表时&#xff0c;出现数据重复的问题&#xff0c;查看代码后发现对应的分页SQL并没有使用order by进行排序&#xff0c;但是印象中Mysql的InnoDB引擎会默认按照主键id进行排序&#xff0c;本地测试了一下的确出现了部分数据在不同的页…

单线程事件处理器ControllerEventManager

0 前言 单线程事件处理器&#xff0c;Controller端定义的一个组件。该组件内置了一个专属线程&#xff0c;负责处理其他线程发送过来的Controller事件。还定义了一些管理方法&#xff0c;为专属线程输送待处理事件。 0.11.0.0版本前&#xff0c;Controller组件源码复杂。集群…

【Ajax】XMLHttpRequest和Level2

一、XMLHttpRequest什么是XMLHttpRequestXMLHttpRequest&#xff08;简称 xhr&#xff09;是浏览器提供的 Javascript 对象&#xff0c;通过它&#xff0c;可以请求服务器上的数据资源。之前所学的 jQuery 中的 Ajax 函数&#xff0c;就是基于 xhr 对象封装出来的。二、了解xhr…

java面试

java面试目录概述需求&#xff1a;设计思路实现思路分析1.代码&#xff1a;参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait for change,challenge Surv…

【数据结构】保姆级队列各接口功能实现

目录 &#x1f34a;前言&#x1f34a;&#xff1a; &#x1f95d;一、队列概述&#x1f95d;&#xff1a; 1.队列的概念&#xff1a; 2.队列的结构&#xff1a; &#x1f349;二、队列的各接口功能实现&#x1f349;&#xff1a; 1.初始化队列&#xff1a; 2.入队&#…

k8s之挂载NFS到POD中

写在前面 在k8s之挂载本地磁盘到POD中 一文中我们看了如何将POD中的数据写到本地磁盘中&#xff0c;这种方式要求POD只能在指定的Node上&#xff0c;一旦POD更换Node&#xff0c;数据依然会丢失&#xff0c;所以本文看下如何通过将数据写到NFS中来解决这个问题。下面我们就开始…

sklearn数据降维之字典学习

文章目录字典学习简介构造函数实战Step1 制作实验数据Step2 小批字典学习Step 3 参数调整字典学习简介 如果把降维理解成压缩的话&#xff0c;那么字典学习的本质是编码&#xff0c;其目的是找到少量的原子&#xff0c;用以描述或构建原始样本。举个一维的例子&#xff0c;以a…

程序员护眼指南

前言 前言&#xff1a;脱发和近视是当代年轻人的两大痛点&#xff0c;今天来聊聊如何护眼。 文章目录前言一、护眼的核心二、调节睫状肌的方法1. 眨眼2. 望远3. 睡觉4. 促进血液循环5. 吃补剂6. 好的屏幕一、护眼的核心 护眼的核心就是保护睫状肌。 睫状肌是眼内的一种平滑肌…

一起自学SLAM算法:7.7 典型SLAM算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 针对式&#xff08;7-38&#xff09;所述的在线SLAM系统&#xff0c;以扩展卡尔曼滤波&#xff08;EKF&#xff09;为代表的滤波方法&#xff0c;是求解该状态估计问题最典型的方法&#xff0c;在7.4节中已经详细…

GY-US42超声波传感器模块介绍

GY-US42超声波传感器模块简介GY-US42 是一款低成本高品质测距传感器模块。工作电压 3-5v&#xff0c;功耗小&#xff0c;体积小&#xff0c;安装方便。其工作原理是&#xff0c;探头发射超声波&#xff0c;照射到被测物体后&#xff0c;探头接收返回声波&#xff0c;利用时间差…

学人工智能电脑主机八大件配置选择指南

来源&#xff1a;深度之眼 作者&#xff1a;frank 编辑&#xff1a;学姐 本篇主要是帮助大家构建高性能、高性价比的AI开发的硬件平台。如何不把钱浪费到不必要的硬件上&#xff0c;并合理搭配硬件配置节省预算是本文想要去讨论的问题。如果预算充足&#xff0c;笔者建议购买一…

【JavaSE专栏1】Java的介绍、特点和历史

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

Python ·保险理赔分析:数据分析

介绍 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 在本笔记本中&#xff0c;我们将仔细研究保险索赔&#xff0c;并弄清一些有关血压、BMI、糖尿病、吸烟、年龄和性别等条件如何影响索赔价值的事实。 我们将使用散点图、饼图、直…

IDEA必装插件-Gyro

前言用SpringBootTest运行单测的时候&#xff0c;是不是每运行都需要重新启动Spring容器&#xff1f;大型应用启动一次会浪费大量的时间&#xff0c;导致效率比较低。Gyro插件可以解决你的问题。Gyro介绍它是一个IDEA插件&#xff0c;安装之后&#xff0c;用Gyro Debug运行你的…

一起自学SLAM算法:7.4 基于贝叶斯网络的状态估计

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 在7.2.4节中&#xff0c;讨论了表示机器人观测与运动之间依赖关系的概率图模型&#xff0c;主要是贝叶斯网络&#xff08;实际应用在机器人中的是动态贝叶斯网络&#xff09;和马尔可夫网络&#xff08;实际应用…

fpga实操训练(lcd字符显示)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 用fpga编写屏幕显示,和c语言编写有很大的不同。用c语言开发,很大程度上是遵循soc ip提供的规范进行编写。而用fpga开发的话,则需要考虑不同信号的时序关系。但是,用fpga开发也有…

c++ 优先级队列priority_queue的使用

c priority_queue是对其他容器元素顺序的调整包装; 堆的原理 1.定义 priority_queue<Type, Container, Functional> q; 其中&#xff0c;Type是数据类型&#xff0c;Container是低层容器&#xff0c;如vector, stack, deque等. Functional是比较函数&#xff1b;默认可…

day25-类加载器反射

1.类加载器 1.1类加载器【理解】 作用 负责将.class文件&#xff08;存储的物理文件&#xff09;加载在到内存中 1.2类加载的过程【理解】 类加载时机 创建类的实例&#xff08;对象&#xff09;调用类的类方法访问类或者接口的类变量&#xff0c;或者为该类变量赋值使用反…