关于世纪的算法
20世纪十大算法(英文版)

1from SIAM News , V olume 33, Number 4By Barry A. CipraAlgos is the Greek word for pain. Algor is Latin, to be cold. Neither is the root for algorithm , which stems instead from al-Khwarizmi, the name of the ninth-century Arab scholar whose book al-jabr wa’l muqabalah devolved into today’s high school algebra textbooks. Al-Khwarizmi stressed the importance of methodical procedures for solving problems. Were he around today,he’d no doubt be impressed by the advances in his eponymous approach.Some of the very best algorithms of the computer age are highlighted in the January/February 2000 issue of Computing in Science & Engineering , a joint publication of the American Institute of Physics and the IEEE Computer Society. Guest editors Jack Don-garra of the University of Tennessee and Oak Ridge National Laboratory and Fran-cis Sullivan of the Center for Comput-ing Sciences at the Institute for Defense Analyses put togeth-er a list they call the “Top Ten Algorithms of the Century.”“We tried to assemble the 10 al-gorithms with the greatest influence on the development and practice of science and engineering in the 20th century,” Dongarra and Sullivan write. As with any top-10 list, their selections—and non-selections—are bound to be controversial, they acknowledge. When it comes to picking the algorithmic best, there seems to be no best algorithm.Without further ado, here’s the CiSE top-10 list, in chronological order. (Dates and names associated with the algorithms should be read as first-order approximations. Most algorithms take shape over time, with many contributors.)1946: John von Neumann, Stan Ulam, and Nick Metropolis, all at the Los Alamos Scientific Laboratory, cook up the Metropolis algorithm, also known as the Monte Carlo method .The Metropolis algorithm aims to obtain approximate solutions to numerical problems with unmanageably many degrees of freedom and to combinatorial problems of factorial size, by mimicking a random process. Given the digital computer’s reputation fordeterministic calculation, it’s fitting that one of its earliest applications was the generation of random numbers.1947: George Dantzig, at the RAND Corporation, creates the simplex method for linear programming .In terms of widespread application, Dantzig’s algorithm is one of the most successful of all time: Linearprogramming dominates the world of industry, where economic survival depends on the ability to optimizewithin budgetary and other constraints. (Of course, the “real” problems of industry are often nonlinear; the useof linear programming is sometimes dictated by the computational budget.) The simplex method is an elegantway of arriving at optimal answers. Although theoretically susceptible to exponential delays, the algorithmin practice is highly efficient—which in itself says something interesting about the nature of computation.1950: Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos, all from the Institute for Numerical Analysisat the National Bureau of Standards, initiate the development of Krylov subspace iteration methods .These algorithms address the seemingly simple task of solving equations of the form Ax =b . The catch,of course, is that A is a huge n ´n matrix, so that the algebraic answer x =b /A is not so easy to compute.(Indeed, matrix “division” is not a particularly useful concept.) Iterative methods—such as solving equations ofthe form Kx i +1=Kx i +b –Ax i with a simpler matrix K that’s ideally “close” to A —lead to the study of Krylov subspaces. Named for the Russian mathematician Nikolai Krylov, Krylov subspaces are spanned by powers of a matrix applied to an initial “remainder” vector r 0=b –Ax 0. Lanczos found a nifty way to generate an orthogonal basis for such a subspace when the matrix is symmetric. Hestenes and Stiefel proposed an even niftier method, known as the conjugate gradient method, for systems that are both symmetric and positive definite. Over the last 50 years, numerous researchers have improved and extended these algorithms.The current suite includes techniques for non-symmetric systems, with acronyms like GMRES and Bi-CGSTAB. (GMRES and Bi-CGSTAB premiered in SIAM Journal on Scientific and Statistical Computing , in 1986 and 1992,respectively.)1951: Alston Householder of Oak Ridge National Laboratory formalizes the decompositional approachto matrix computations .The ability to factor matrices into triangular, diagonal, orthogonal, and other special forms has turnedout to be extremely useful. The decompositional approach has enabled software developers to produceflexible and efficient matrix packages. It also facilitates the analysis of rounding errors, one of the bigbugbears of numerical linear algebra. (In 1961, James Wilkinson of the National Physical Laboratory inLondon published a seminal paper in the Journal of the ACM , titled “Error Analysis of Direct Methodsof Matrix Inversion,” based on the LU decomposition of a matrix as a product of lower and uppertriangular factors.)1957: John Backus leads a team at IBM in developing the Fortran optimizing compiler .The creation of Fortran may rank as the single most important event in the history of computer programming: Finally, scientists The Best of the 20th Century: Editors Name T op 10 Algorithms In terms of w ide-spread use, George Dantzig’s simplexmethod is among the most successful al-gorithms of all time.Alston Householder2(and others) could tell the computer what they wanted it to do, without having to descend into the netherworld of machine code.Although modest by modern compiler standards—Fortran I consisted of a mere 23,500 assembly-language instructions—the early compiler was nonetheless capable of surprisingly sophisticated computations. As Backus himself recalls in a recent history of Fortran I, II, and III, published in 1998 in the IEEE Annals of the History of Computing , the compiler “produced code of such efficiency that its output would startle the programmers who studied it.”1959–61: J.G.F. Francis of Ferranti Ltd., London, finds a stable method for computing eigenvalues, known as the QR algorithm .Eigenvalues are arguably the most important numbers associated with matrices—and they can be the trickiest to compute. It’s relatively easy to transform a square matrix into a matrix that’s “almost” upper triangular, meaning one with a single extra set of nonzero entries just below the main diagonal. But chipping away those final nonzeros, without launching an avalanche of error,is nontrivial. The QR algorithm is just the ticket. Based on the QR decomposition, which writes A as the product of an orthogonal matrix Q and an upper triangular matrix R , this approach iteratively changes A i =QR into A i +1=RQ , with a few bells and whistles for accelerating convergence to upper triangular form. By the mid-1960s, the QR algorithm had turned once-formidable eigenvalue problems into routine calculations.1962: Tony Hoare of Elliott Brothers, Ltd., London, presents Quicksort .Putting N things in numerical or alphabetical order is mind-numbingly mundane. The intellectual challenge lies in devising ways of doing so quickly. Hoare’s algorithm uses the age-old recursive strategy of divide and conquer to solve the problem: Pick one element as a “pivot,” separate the rest into piles of “big” and “small” elements (as compared with the pivot), and then repeat this procedure on each pile. Although it’s possible to get stuck doing all N (N –1)/2 comparisons (especially if you use as your pivot the first item on a list that’s already sorted!), Quicksort runs on average with O (N log N ) efficiency. Its elegant simplicity has made Quicksort the pos-terchild of computational complexity.1965: James Cooley of the IBM T.J. Watson Research Center and John Tukey of PrincetonUniversity and AT&T Bell Laboratories unveil the fast Fourier transform .Easily the most far-reaching algo-rithm in applied mathematics, the FFT revolutionizedsignal processing. The underlying idea goes back to Gauss (who needed to calculate orbitsof asteroids), but it was the Cooley–Tukey paper that made it clear how easily Fouriertransforms can be computed. Like Quicksort, the FFT relies on a divide-and-conquerstrategy to reduce an ostensibly O (N 2) chore to an O (N log N ) frolic. But unlike Quick- sort,the implementation is (at first sight) nonintuitive and less than straightforward. This in itselfgave computer science an impetus to investigate the inherent complexity of computationalproblems and algorithms.1977: Helaman Ferguson and Rodney Forcade of Brigham Young University advance an integer relation detection algorithm .The problem is an old one: Given a bunch of real numbers, say x 1, x 2, ... , x n , are there integers a 1, a 2, ... , a n (not all 0) for which a 1x 1 + a 2x 2 + ... + a n x n = 0? For n = 2, the venerable Euclidean algorithm does the job, computing terms in the continued-fraction expansion of x 1/x 2. If x 1/x 2 is rational, the expansion terminates and, with proper unraveling, gives the “smallest” integers a 1 and a 2.If the Euclidean algorithm doesn’t terminate—or if you simply get tired of computing it—then the unraveling procedure at least provides lower bounds on the size of the smallest integer relation. Ferguson and Forcade’s generalization, although much more difficult to implement (and to understand), is also more powerful. Their detection algorithm, for example, has been used to find the precise coefficients of the polynomials satisfied by the third and fourth bifurcation points, B 3 = 3.544090 and B 4 = 3.564407,of the logistic map. (The latter polynomial is of degree 120; its largest coefficient is 25730.) It has also proved useful in simplifying calculations with Feynman diagrams in quantum field theory.1987: Leslie Greengard and Vladimir Rokhlin of Yale University invent the fast multipole algorithm .This algorithm overcomes one of the biggest headaches of N -body simulations: the fact that accurate calculations of the motions of N particles interacting via gravitational or electrostatic forces (think stars in a galaxy, or atoms in a protein) would seem to require O (N 2) computations—one for each pair of particles. The fast multipole algorithm gets by with O (N ) computations. It does so by using multipole expansions (net charge or mass, dipole moment, quadrupole, and so forth) to approximate the effects of a distant group of particles on a local group. A hierarchical decomposition of space is used to define ever-larger groups as distances increase.One of the distinct advantages of the fast multipole algorithm is that it comes equipped with rigorous error estimates, a feature that many methods lack.What new insights and algorithms will the 21st century bring? The complete answer obviously won’t be known for another hundred years. One thing seems certain, however. As Sullivan writes in the introduction to the top-10 list, “The new century is not going to be very restful for us, but it is not going to be dull either!”Barry A. Cipra is a mathematician and writer based in Northfield, Minnesota.James CooleyJohn Tukey。
20世纪十大算法

20世纪十大算法本世纪初,美国物理学会(American Institute of Physics)和IEEE计算机社团(IEEE Computer Society)的一本联合刊物《科学与工程中的计算》发表了由田纳西大学的Jack Dongarra和橡树岭国家实验室的Francis Sullivan联名撰写的“世纪十大算法”一文,该文“试图整理出在20世纪对科学和工程领域的发展产生最大影响力的十大算法”。
作者苦于“任何选择都将是充满争议的,因为实在是没有最好的算法”,他们只好用编年顺序依次列出了这十项算法领域人类智慧的巅峰之作——给出了一份没有排名的算法排行榜。
有趣的是,该期杂志还专门邀请了这些算法相关领域的“大拿”为这十大算法撰写十篇综述文章,实在是蔚为壮观。
本文的目的,便是要带领读者走马观花,一同回顾当年这一算法界的盛举。
1946蒙特卡洛方法在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,呃,能帮我算算这个不规则图形的面积么?蒙特卡洛(Monte Carlo)方法便是解决这个问题的巧妙方法:随机向该正方形内扔N(N是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个:那么,这个奇怪形状的面积便近似于M/N,N越大,算出来的值便越精确。
别小看这个数黄豆的笨办法,大到国家的民意测验,小到中子的移动轨迹,从金融市场的风险分析,到军事演习的沙盘推演,蒙特卡洛方法无处不在背后发挥着它的神奇威力。
蒙特卡洛方法由美国拉斯阿莫斯国家实验室的三位科学家John von Neumann(看清楚了,这位可是冯诺伊曼同志!),Stan Ulam和Nick Metropolis共同发明。
就其本质而言,蒙特卡洛方法是用类似于物理实验的近似方法求解问题,它的魔力在于,对于那些规模极大的问题,求解难度随着问题的维数(自变量个数)的增加呈指数级别增长,出现所谓的“维数的灾难”(Course of Dimensionality)。
二十四节气如何计算

二十四节气如何计算?立春日期的计算:计算公式:[Y*D+C]-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。
21世纪C值=3.87,22世纪C值=4.15。
二十四节气的计算立春日期的计算计算公式:[Y*D+C]-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。
21世纪C值=3.87,22世纪C值=4.15。
举例说明:2058年立春日期的计算步骤[58×.0.2422+3.87]-[(58-1)/4]=17-14=3,则2月3日立春。
雨水日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加18.74取整数减闰年数。
21世纪雨水的C值18.73。
举例说明:2008年雨水日期=[8×.0.2422+18.73]-[(8-1)/4]=20-1=19,2月19日雨水。
例外:2026年计算得出的雨水日期应调减一天为18日。
惊蛰日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加5.63取整数减闰年数。
21世纪惊蛰的C值=5.63。
举例说明:2088年惊蛰日期=[88×.0.2422+5.63]-[88/4]=26-22=4,3月4日是惊蛰。
例外:无。
春分日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。
21世纪春分的C值=20.646。
举例说明:2092年春分日期=[92×.0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。
例外:2084年的计算结果加1日。
清明节日期的计算[Y*D+C]-L公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59。
例外:无。
谷雨节日期的计算[Y*D+C]-L公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=20.1,20世纪=20.888。
举例说明:2088年谷雨日期=[88×.0.2422+20.1]-[88/4]=41-22=19,4月19日是谷雨。
[已整理]20世纪科学界十大算法
![[已整理]20世纪科学界十大算法](https://img.taocdn.com/s3/m/6bf2028e680203d8ce2f2419.png)
1962 快速排序算法
不少读者恐怕和我一样,看到“快速排序算法”(Quick Sort)这个条目时,心里的感觉是——“这可总算找到组织了”。相比于其他一些对程序员而言高深莫测的数学物理公式,快速排序算法真是我们朝夕相处的好伙伴——老板让你写个排序算法,如果你写出来的不是快速排序,你都不好意思跟同事打招呼。其实根本不用自己动手实现, 不论是ANSI C,C++ STL,还是Java SDK,天下几乎所有的SDK里都能找到它的某种实现版本。
话说回来,当年这帮开发Fortran的家伙真是天才——只用23500行汇编指令就完成了一个Fortran编译器,而且其效率之高令人叹为观止:当年在IBM 主持这一项目的负责人JohnBackus在数十年后,回首这段往事的时候也感慨,说它生成代码的效率“出乎了所有开发者的想象”。看来作为程序员,自己写的程序跑起来“出乎自己的想象”,有时候还真不一定是件坏事!
快速排序的平均时间复杂度仅仅为O(Nlog(N)),相比于普通选择排序和冒泡排序等而言,实在是历史性的创举。
1965 快速傅立叶变换
如果要评选对我们的日常生活影响最大的算法,快速傅立叶变换算法应该是当仁不让的总冠军——每天当拿起话筒,打开手机,听mp3,看DVD,用DC拍照 ——毫不夸张的说,哪里有数字信号处理,哪里就有快速傅立叶变换。快速傅立叶算法是离散傅立叶算法(这可是数字信号处理的基石)的一种快速算法,它有 IBM 华生研究院的James Cooley和普林斯顿大学的John Tukey共同提出,其时间复杂度仅为O(Nlog(N));比时间效率更为重要的是,快速傅立叶算法非常容易用硬件实现,因此它在电子技术领域得到极其广泛的应用。
1946 蒙特卡洛方法
在广场上画一个边长一米的正方形,在正方形内部随意用粉笔画一个不规则的形状,呃,能帮我算算这个不规则图形的面积么?蒙特卡洛(Monte Carlo)方法便是解决这个问题的巧妙方法:随机向该正方形内扔N(N 是一个很大的自然数)个黄豆,随后数数有多少个黄豆在这个不规则几何形状内部,比如说有M个:那么,这个奇怪形状的面积便近似于M/N,N越大,算出来的值便越精确。别小看这个数黄豆的笨办法,大到国家的民意测验,小到中子的移动轨迹,从金融市场的风险分析,到军事演习的沙盘推演,蒙特卡洛方法无处不在背后发挥着它的神奇威力。
计算闰年的算法

计算闰年的算法
闰年分为普通闰年和世纪闰年。
一、普通闰年的判断方法
1.规则:能被 4 整除但不能被 100 整除的年份为普通闰年。
●例如:2004 年,2004÷4 = 501,说明 2004 能被 4 整除;2004
÷100 = 20.04,说明 2004 不能被 100 整除,所以 2004 年是闰年。
●再如:1900 年,1900÷4 = 475,说明 1900 能被 4 整除;1900
÷100 = 19,说明 1900 能被 100 整除,所以 1900 年不是闰年。
二、世纪闰年的判断方法
1.规则:能被 400 整除的世纪年(即以 00 结尾的年份)为世纪闰年。
●例如:2000 年,2000÷400 = 5,说明 2000 能被 400 整除,所
以 2000 年是世纪闰年。
综上所述,判断一个年份是否为闰年,可以先判断是否为世纪年(以00 结尾),如果是世纪年则判断是否能被 400 整除;如果不是世纪年,则判断是否能被 4 整除且不能被 100 整除。
20世纪十个最伟大算法

20世纪十个最伟大算法!!人类在20世纪产生了10个著名的算法,是什么算法?这里是一篇文章,介绍了美国科学家评出的10个算法,感兴趣可以看一看。
20世纪最好的10个算法三镜先生一、算法一词的来源Algos是希腊字,意思是“疼”,A1gor是拉丁字,意思是“冷却”。
这两个字都不是Algorithm(算法)一词的词根,a1gorithm一词却与9世纪的阿拉伯学者al-Khwarizmi有关,他写的书《al-jabrw’almuqabalah》(代数学)演变成为现在中学的代数教科书。
Ad-Khwarizmi 强调求解问题的有条理的步骤。
如果他能活到今天的话,他一定会被以他的名字而得名的方法的进展所感动。
二、20世纪10最好的算法20世纪最好的算法,计算机时代的挑选标准是对科学和工程的研究和实践影响最大。
下面就是按年代次序排列的20世纪最好的10个算法。
1.MonteCarlo方法1946年,在洛斯阿拉莫斯科学实验室工作的JohnvonNeumann,StanUlam和NickMetropolis编制了Metropolis算法,也称为MonteCarlo 方法。
Metropolis算法旨在通过模仿随机过程,来得到具有难以控制的大量的自由度的数值问题和具有阶乘规模的组合问题的近似解法。
数字计算机是确定性问题的计算的强有力工具,但是对于随机性(不确定性)问题如何当时并不知晓,Metropolis算法可以说是最早的用来生成随机数,解决不确定性问题的算法之一。
2.线性规划的单纯形方法1947年,兰德公司的GrorgeDantzig创造了线性规划的单纯形方法。
就其广泛的应用而言,Dantzig算法一直是最成功的算法之一。
线性规划对于那些要想在经济上站住脚,同时又有赖于是否具有在预算和其他约束条件下达到最优化的能力的工业界,有着决定性的影响(当然,工业中的“实际”问题往往是非线性的;使用线性规划有时候是由于估计的预算,从而简化了模型而促成的)。
二十四节气如何计算资料

二十四节气如何计算?立春日期的计算:计算公式:[Y*D+C]-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。
21世纪C值=3.87,22世纪C值=4.15。
二十四节气的计算立春日期的计算计算公式:[Y*D+C]-L公式解读:年数的后2位乘0.2422加3.87取整数减闰年数。
21世纪C值=3.87,22世纪C值=4.15。
举例说明:2058年立春日期的计算步骤[58×.0.2422+3.87]-[(58-1)/4]=17-14=3,则2月3日立春。
雨水日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加18.74取整数减闰年数。
21世纪雨水的C值18.73。
举例说明:2008年雨水日期=[8×.0.2422+18.73]-[(8-1)/4]=20-1=19,2月19日雨水。
例外:2026年计算得出的雨水日期应调减一天为18日。
惊蛰日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加5.63取整数减闰年数。
21世纪惊蛰的C值=5.63。
举例说明:2088年惊蛰日期=[88×.0.2422+5.63]-[88/4]=26-22=4,3月4日是惊蛰。
例外:无。
春分日期的计算[Y*D+C]-L公式解读:年数的后2位乘0.2422加20.646取整数减闰年数。
21世纪春分的C值=20.646。
举例说明:2092年春分日期=[92×.0.2422+20.646]-[92/4]=42-23=19,3月19日是春分。
例外:2084年的计算结果加1日。
清明节日期的计算[Y*D+C]-L公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59。
例外:无。
谷雨节日期的计算[Y*D+C]-L公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=20.1,20世纪=20.888。
举例说明:2088年谷雨日期=[88×.0.2422+20.1]-[88/4]=41-22=19,4月19日是谷雨。
20世纪最伟大的十大算法

二、1947 单纯形法
❖[1947: George Dantzig, at the RAND Corporation, creates the simplex method for linear programming.]
❖1947年,兰德公司的,Grorge Dantzig, 发明了单纯形方法。 单纯形法,此后成为了线性规划学科的重 要基石。
❖ 1950年:美国国家标准局数值分析研究所的,马 格努斯Hestenes,爱德华施蒂费尔和科尼利厄斯 的Lanczos,发明了Krylov子空间迭代法。
❖Krylov子空间迭代法是用来求解形如Ax=b 的方程, A是一个n*n 的矩阵,当n充分大时,直接计算变得 非常困难,而Krylov方法则巧妙地将其变为 Kxi+1=Kxi+b-Axi的迭代形式来求解。
❖线性规划作为运筹学(operation research) 的一部分,成为管理科学领域的一种重要 工具。
❖ 而Dantzig提出的单纯形法便是求解类似线 性规划问题的一个极其有效的方法。
三、1950 Krylov子空间迭代法
❖[1950: Magnus Hestenes, Eduard Stiefel, and Cornelius Lanczos, all from the Institute for Numerical Analysis at the National Bureau of Standards, initiate the development of Krylov subspace iteration methods.]
❖ 所谓线性规划,简单的说,就是给例如a1*x1+b1*x2+c1*x3>0),求一个给定的目 标函数的极值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
千纪、世纪、年代问题一历史学是一门以时、空为维度的科学。
谈及任何历史事件、事物、人物等等,都要界定它的时间段落和空间范围。
历史的空间范围这里不去说它。
历史的时间段落则以年为本位度量单位。
年也是社会生活的元单位。
时间是运动的速度,空间是运动的范围。
年便是地球环绕太阳一周的时间。
比年小的时间单位有季、月、旬、周、日、时、分等。
地球斜着身子沿椭圆轨道绕太阳运转带来了季节的变化。
月最初是月亮环绕地球一周的时间,圆缺盈虚一次的周期。
公历的月由此发展而来,但已有所不同。
日是地球自转一周的时间。
周又称星期,最初与月相变化有关,恰为月亮圆缺一次1//4。
以上的年、季、月、周、日都以天体运动为基准。
旬、时分、秒的发明是为了精细地划分时间段落和工作生活方便。
时、分秒按照24进位和60进位嵌入日内,分秒不差。
周与年、月之间则不求除尽,让它周而复始。
如一年有52周多。
这方面的匹配协调问题已解决得比较圆满。
在史学界和社会生活方面,比年更大的度量单位有年代、世纪、千纪、万年等,其中前三者比较常用。
但在它们与年的匹配协调中,问题尚未完全解决。
其原因在于它们并不是以天体运动或别的什么运动为基准,而是人为规定,约定俗成。
于是可以这样约定,也可以那样俗成。
解决这些问题需要全社会的参予和认同。
二现在通用的公历纪年已有一千几百年的历史。
4世纪的希腊人、基督教史家攸西比乌斯(Eusebius,260-340)采用了统一的综合编年法。
6世纪的西班牙神学家伊西多尔(Isidore,560-636)在攸氏的基础上提出了基督纪年法,即现行的公历,它的起点是公元1年(A、D、I)。
这个纪年及其起点也是主观规定,习惯成自然的,并没以运动或自然界的某一重大事件为基准。
8世纪时英国教会史家比德(Bede,673-735)首先按公元纪年推算公元前的年数,依次定为公元前1年,公元前2年(……Ⅲ、Ⅱ、ⅠB、C)等等。
比德的推算没有在公元前后之间定出一个公元零的[当时欧洲通用的罗马数字无零(0)的形式],为后来的分歧和争议埋下了病根。
比德以后基督纪年法随基督教势力的扩展而得到越来越广泛的使用,我国也在辛亥革命后改行公元纪年。
16世纪时,为了将纪年序列划分为比年大比千年小的年数段,采用了“世纪”一词来表示100年的年数段。
最早的应用是教会史家编纂的教会史《马格德堡世纪》。
基督教自来有千年王国、千的庆典的教义和说法。
现代我国史学界引进后往往模仿世纪译成“千纪”,其中有代表性、影响最大的是三联书店出版的苏联科学院的鸿篇巨制《世界通史》十卷二十册。
也有的学者把几千纪称为“第几千年纪”。
我觉得那样就比前者多了两个字,没“几千纪”好。
因为语言词汇的发展规律便是在准确丰富的基础上力求简扼。
20世纪又出现了“年代”一词,指十年这个时段。
但“80年代”英语说eighties,“20世纪70年代”一般简写成1970s或1970’s,余类推。
俄语则另有写法……至此便形成了十年为一年代,十个年代为一世纪,十个世纪为一千纪的三年进位序列和比年大的三大时间度量单位。
从数学上讲,世纪的纪年有从0至99和从1至100两种算法。
公元前的世纪既可以从公元前1年至前100年为前1世纪,前101年至前200年为前2世纪;也可以从公元前1年至前99年为前1世纪,前100年至前199年为前2世纪……不过公元前的事比较遥远,相对不太重要,分歧争议也不大,这里也就不去谈这两种划分法的利弊得失了。
我想,公元前的世纪不妨可统一为公元前1年至前100年为前1世纪,公元前101年至前200年为前2世纪,余类推。
如果硬要更精确,也可以把公元前200年、100年这样的年份称为公元前3、2世纪之交的一年,前2、1世纪之交的一年。
需要注意的是,公元前某世纪上半叶、下半叶的时段恰与公元后相反。
例如公元前12世纪上半叶指公元前1200年至前1149年,公元前1世纪下半叶指公元前50年至前1年。
在世界古代史中,公元前几千纪的初期、上半期、中期、下半期、晚期的廉洁比较普遍。
公元前一千纪指公元前1年至前1000年,公元前二(两)千纪指公元前1001年至前2000年,余类推。
当然也可以把前3000年、前2000年这样的年份作为两个千纪相交的一年。
我想公元前20、19两个世纪似可视为公元前两千纪初期;公元前20-16五个世纪应统一视为公元前二千纪上半期;公元前17-13五个世纪似可视为公元前两千纪中期;公元前15-11五个世纪应统一视为前两千纪下半期;公元前12、11两个世纪似可视为公元前两千纪晚期。
三公元后的事情离现实较近,纪年逐渐细致化。
千纪虽在世界史中也有时用到,但总的说来用得较少。
常用的是世纪和年代。
世纪本有从1到100和从0到99两种计算法,它们各有利弊,各有道理。
这主要是个约定俗成,习惯成自然的问题。
加上无公元零年,事情就有点复杂。
我想公元后的世纪就姑且定为从0到99为一个世纪。
这样可避免1800年、1900年、2000年等年份无法纳入某个年代的麻烦。
因为一个年份应属于某个年代,一个年代应属于某个世纪。
年不应跨年代、跨世纪。
如果把公元后的世纪定为从1到100,则2001年便是21世纪的开端,而1990-1999年又已统一为20世纪90年代,那样2000年便无年代可归属。
把世纪定为从0到99还适应了许多人想早点跨入下个世纪下个千纪的愿望。
因为21世纪还是公元三千纪的第一个世纪。
当然这样一来公元1世纪便只能是从公元1年到99年。
作为一个特例,公元1世纪便只有99年,留下了一点遗憾。
以此类推,公元1800年至1899年为19世纪,1900年至1999年为20世纪,2000年至2099年为21世纪。
21世纪和22世纪构成公元3千纪初期。
特别是要注意的是,在计算跨公元前后的时段问题时,要减去一年即没有的公元零年,不可疏忽。
例如,1989年我国曾隆重纪念孔子诞辰2540周年。
孔子生于公元前551年,1989+551=2540。
但因无公元零年;得减去一年。
所以本应在1990年纪念孔子诞辰2540周年。
四本世纪以来生活节奏进一步加快,因而出现了“年代”。
它指一个世纪的1/10,表示10年这个年数段。
从数学上讲,年代的纪年也有从0到9和从1到10两种计算法。
《辞海》1970年版“世纪”条说,亦有主张1971-1980年为20世纪70年代者;1989年版说亦有主张1981-1990年为20世纪80年代者。
我觉得年代应统一为从0到9。
例如20世纪20年代指1920年至1929年,20世纪90年代指1990年至1999年。
如此划分的原因在于,这样一来,“几”十年代中的每一年在十位上都有这个“几”,比较方便。
例如1970-1979年为70年代,其中的每一年在十位上都有七。
还有,这样外语也便于缩写,如将80年代简写为1980s等。
如果年代从1到10,英、俄语等未见得能缩写。
因为那样的划分最后一年要进为1990。
不过20年代以前的两个年代尚无统一名称或叫法(这也旁证了“年代”启用于20世纪二三十年代)。
先不必忙着去补称它们,本世纪初的两个十年却迫切需要定名。
我认为,2010年至2019年应称为21世纪“二十年代”。
这样与二十年代、三十年代的叫法吻合、协调。
一十年代的每一年在十位上都有个“-”(10-19)。
2000年至2009年的年代称谓要费斟酌一些。
汉语和外语都可以说“某世纪第一个十年”(the first clecade of a certain century)。
但这样说又不简扼,难以被全社会普遍接受并流行开来。
当然外语的局面简写形式仍可为2000s或2000’s,不进外语的简写与口说不求一致,前已述及。
如操英语的民族现在也在The Zips、The Naughts、The Zilches、The Oh-Ohs之间徘徊。
汉语的书面形式和口头表述则应一致。
我想21世纪的第一个十年可称为零十年代、头十年代、初十年代、元十年代等。
在上述几个选择中,我认为零十年代最为科学,具有前途。
一因其中每一年在十位上都有零(00-09),二因它与一十年代、二十年代等匹配。
三因(在数轴上)1以前的(自然)数是0。
当然,最初叫零十年代有点拗口,不大习惯。
但在生活中零作为词素其使用已较为广泛,渐为人们接受了。
例如零点等于午夜24点,现在人们更爱说零点正(整)、零点15分,而不大爱说24点正(整)、24点15分。
气温表上的零度人们则只能说零度,并在此基础上说零上几度,零下几度。
这样的话,本世纪初的第一、第二个十年也就可以简称为20世纪零十年代、一十年代了。
自然,如果群众更乐意接受头十年代、初十年代、元十年代的廉洁也未尝不可。
不觉有一个简写问题。
二十年代、三十年代等的书面形式现在也可以并经常用阿拉伯数字简写为20年代、30年代等。
以此类推,我们也可将一十年代、零十年代简写为10年代、00年代;但仍读作用中文书写的年代,而不读作零零年代、一零年代。
参考资料:人民日报。