public
庄浪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
class
Main
{
public
static
void
main(String[]
args)
{
for
(int
i
=
0;
i
5;
i++)
//这一句控制5行的打印。
{
for
(int
j
=
0;
j
5
-
i
-
1;
j++)
{
System.out.print("
");
}//这一句共执行 5-i-1次,即输出 5-i-1个空格。
for
(int
k
=
0;
k
2*i+1;
k++)
{
System.out.print("*");
}//这一句共执行 i+1次。即输出2i+1个*。
//该输出的都输出了,换一行继续打印。
System.out.println();
//打印一个回车符,即换行了。
}//你可以迭代一下每个i值,看看打印的个数对不对。
}
}下边是我写的其他程序。
In this exercise, we will use the Math and Random class to manipulate values for a specific problem.
在这个练习中,我们将用数学和Random class去解决和调控值的有关的特定问题。
A recent research conducted has concluded that the likelihood of a planet in an extra-solar planetary system containing water in its atmosphere can be estimated by the following formula:
一个最近完成的研究得出了这样的结论:在太阳系外某个系统中的某个星球的大气层含有水的可能性可以通过下面的公式来估计:
Likelihood = (rand * planetmass ) / sunmass
可能性=(随机数*行星质量)/恒星质量
The input to the program is the mass of the planet, and the mass of its parent sun. rand is a random
number generated between 0.5 and 0.6.
所要输入到程序里的有行星的质量以及它所围绕着的恒星的质量。Rand指的是介于0.5和0.6之间的一个随机数。
Write a Java program to calculate and report the likelihood of the presence of water.
编写一个Java程序去计算并报道出有水的可能性。
Exercise 5 [5 marks]
Typically, books are identified by an International Standard Book Number (ISBN) which adheres to a specific format, e.g. 0-393-30375-6.
很典型的一件事是所有书都拥有能识别它们自己的ISBN号,也就是国际标准图书编号,比如说0-393-30375-6,而ISBN号和一个具体公式有关系
The first digit indicates the language in which the book is
written. The next group of digits specifies the publisher and the group after that is a number assigned by the publisher to identify the book. The ISBN ends with a “check digit” that is used to verify the accuracy of the preceding digits.
第一个数字代表了该书的语言体系。下一组数字指定出了出版商,再接下来的一组是由出版商指定用来识别此书的。ISBN号以“检验数字”结束的,这个数字是用来核实前面所有数字的准确性的。
Write a program that breaks down an ISBN entered by the user as follows:
如下编写一个能够肢解用户输入的ISBN号的程序:
Please enter the ISBN number in the following format x-xxx-xxxxx-x: 0-123- 45678-9
按照 x-xxx-xxxxx-x的格式输入ISBN号:0-123- 45678-9
Language = 0
语言=0
Publisher = 123
出版商=123
Book = 45678
出版商识别的该书:45678
Check = 9
检验数字=9
FIT1002 Computer Programming Prac 3/Week 4 – Introduction to Classes and Objects
Developed by the FIT1002 Multi-campus Unit Management Group, 2008 Page 3 of 3
Faculty of Information Technology, Monash University
(略)
Hint: You will need to read in the input as a String and then use the method available in the
Scanner class called useDelimiter("-") to break down the ISBN. Please refer to the Scanner
class documentation available in the Javadocs.
提示:你将需要把所输入的东西作为一个变量并且用Scanner class中可行的useDelimiter("-")办法去肢解ISBN号。请参考java语言书籍中的有关Scanner class的文件。
Test your understanding
测试一下你的理解程度。
Attempt the Quiz on the MUSO course web site
试着参加MUSO课程网站上的小考。
编程的一个用途是通过模拟来帮助我们理解真实世界。这一技术被应用于科学、金融和许多其他定量领域。只要控制现实世界属性的“规则”是已知的,你就可以编写一个计算机程序来 探索 你遵循这些规则所得到的结果。在本文中,您将 用Python模拟三维太阳系 使用流行的可视化库Matplotlib
在这篇文章,你将能够用Python创建你自己的3D太阳系,你可以用你想要的多少太阳和行星。下面是一个简单的太阳系的一个例子,它有一个太阳和两个行星:
你还可以打开动画地板上的二维投影,更好地展示太阳系的三维本质。下面是同样的太阳系模拟,包括2D投影:
下面是这篇文章的概要,以便您知道接下来会发生什么:
在本文中,您将使用面向对象的编程和Matplotlib。如果您希望阅读更多关于任何一个主题的内容,您可以阅读:
让我们从使用Matplotlib在Python中模拟一个3D太阳系开始。
太阳系中的太阳、行星和其他天体都是运动中的天体,它们相互吸引。引力在任何两个物体之间施加。
如果这两个对象有大量M_1和M_2是距离r然后,你可以用以下公式计算它们之间的引力:
常数G是一个引力常数。您将看到如何在模拟的版本中忽略这个常量,在本文中,您将使用任意单位的质量和距离,而不是kg和m。
一旦你知道了两个物体之间的引力,你就可以计算出加速度。a每个物体都是由于这种引力而经历的,使用以下公式:
使用这个加速度,你可以调整运动物体的速度。当速度发生变化时,速度和方向都会发生变化。
当用Python模拟一个三维太阳系时,你需要用三维空间来表示太阳系。因此,这个3D空间中的每个点都可以用三个数字来表示, x -, y -和 z -坐标。例如,如果你想把太阳放在太阳系的中心,你可以将太阳的位置表示为 (0, 0, 0) .
您还需要在3D空间中表示向量。矢量具有大小和方向。你需要像速度、加速度和力这样的量的矢量,因为这些量都有一个方向和一个震级。
在本文中,我将不详细讨论向量代数。相反,我将陈述您需要的任何结果。你可以读到更多关于向量与向量代数如果你愿意的话。
为了在代码中更容易地处理向量,您可以创建一个类来处理它们。编写这个类将作为对类和面向对象编程的快速刷新。你可以读到用Python进行面向对象的编程如果你觉得你需要一个更彻底的解释。虽然您也可以创建一个类来处理3D空间中的点,但这并不是必要的,在本文中我也不会创建一个类。
如果您熟悉向量和面向对象编程,可以跳过本节,只需在定义 Vector 班级。
创建一个名为 vectors.py 中,您将定义 Vector 班级。您将使用此脚本定义类并对其进行测试。然后,可以删除最后的测试代码,只需在这个脚本中保留类定义:
这个 __init__() 方法的 Vector 类有三个参数,表示每个轴上的值。每个参数的默认值为 0 表示该轴的原点。虽然我们不喜欢在Python中使用单个字母名称, x , y ,和 z 是恰当的,因为它们代表了数学中常用的笛卡尔坐标系的术语。
您还定义了两个Dunder方法来将对象表示为一个字符串:
在代码段的末尾,您可以更多地了解这两种类型的字符串表示之间的差异。Python编码书第9章 .
测试代码块的输出如下:
在Python项目中的这个3D太阳系中,如果 Vector 类是可索引的,以便您可以使用 [] 带有索引以提取其中一个值的符号。使用当前形式的类,如果添加 print(test[0]) 在您的脚本中,您将得到一个 TypeError 说 Vector 对象不可订阅。您可以通过向类定义中添加另一个Dud方法来修复这个问题:
通过定义 __getitem__() ,你做了 Vector 可索引的类。向量中的第一项是 x 的价值。 y 的价值。 z 。任何其他索引都会引发错误。测试代码块的输出如下:
test[0] 返回向量中的第一个项, x .
可以定义类的对象的加法和减法。 __add__() 和 __sub__() DunderMethod.这些方法将使您能够使用 + 和 - 执行这些操作的符号。如果没有这些Dud方法,则使用 + 和 - 提出 TypeError .
若要添加或减去两个向量,可以分别添加或减去向量的每个元素:
双管齐下 __add__() 和 __sub__() 返回另一个 Vector 对象,每个元素等于两个原始向量中相应元素的加减。输出如下:
对于乘法和除法,您也可以这样做,尽管在处理向量时,这些操作需要更多的注意。
在处理向量时,不能仅仅引用“乘法”,因为有不同类型的“乘法”。在这个项目中,你只需要标量乘法。标量乘法是指向量与标量相乘(标量有一个数量级,但没有方向)。但是,在本小节中,您还将定义点积两个向量。你想用 * 运算符,既适用于标量乘法,也适用于点积。因此,可以定义 __mul__() DunderMethod:
使用 * 运算符将取决于第二个操作数,即 * 符号,是标量或向量。如果由参数表示的第二个操作数 other ,是类型的 Vector ,计算了点积。但是,如果 other 是类型的 int 或 float ,返回的结果是一个新的 Vector ,按比例调整。
以上代码的输出如下:
如果您想要标量乘法,则需要标量乘法。 后 这个 * 象征。如果您试图运行该语句 3*Vector(3, 5, 9) 相反, TypeError 将被提高,因为 Vector 类不是用于使用的有效操作数。 * 带有类型的对象 int .
两个向量是分不开的。但是,可以将向量除以标量。您可以使用 / 运算符 Vector 如果定义 __truep__() DunderMethod:
产出如下:
如果你有一个向量(x,y,z),您可以找到它的震级使用表达式(x^2+y^2+z^2)。你也可以规范化向量。归一化给出一个方向相同但大小为 1 。您可以通过将向量的每个元素除以矢量的大小来计算归一化向量。
可以定义两个新方法来完成 Vector 班级:
测试代码提供了以下输出:
第三个输出给出了归一化向量的大小,表明它的大小是 1 .
根据使用的IDE或其他工具,在分割时可能会收到警告 self.x , self.y ,和 self.z ,如在 __truep__() 和 normalize() 。您不需要担心这个问题,但是如果您想要修复它,可以通过更改 __init__() 签署下列任何一项:
或
这两个选项都让IDE知道参数应该是浮动的。在第二个选项中,您使用类型暗示来实现。
您现在可以删除此脚本末尾的测试代码,以便您在 vectors.py 是类的定义。
现在,你可以开始研究Python中的3D太阳系了。您将创建两个主要类:
你将使用Matplotlib来创建和可视化太阳系。您可以在终端中使用以下内容来安装Matplotlib:
或
这个 Axes3D Matplotlib中的物体将“托管”太阳系。如果您使用过Matplotlib,并且主要使用了2D绘图,那么您将使用(有意或不知情的) Axes 对象。 Axes3D 的3D等效 Axes ,顾名思义!
现在是开始编写和测试这些类的时候了。您可以创建两个新文件:
接下来,您将开始处理 SolarSystem 班级。
您将在整个项目中使用任意单元。这意味着,与其用米作为距离,而用公斤作为质量,你将使用没有单位的数量。参数 size 用于定义包含太阳系的立方体的大小:
定义 SolarSystem 类的 __init__() 方法,其中包含参数。 size 。您还定义了 bodies 属性。这个属性是一个空列表,当你稍后创建它们时,它将包含太阳系内的所有天体。这个 add_body() 方法可以用来将轨道天体添加到太阳系中。
下一步是介绍Matplotlib。属性创建图形和一组轴。 subplots() 在 matplotlib.pyplot :
你打电话 plt.subplots() ,它返回一个图形和一组轴。返回的值分配给属性。 fig 和 ax 。你打电话 plt.subplots() 有以下论点:
您还可以调用该方法。 tight_layout() 。这是 Figure 类在Matplotlib中。此方法减少了图形边缘的边距。
到目前为止,您可以在控制台/REPL中尝试代码:
这给出了一组空的三维轴的图形:
您将使用 size 参数设置此多维数据集的大小。你会回到 SolarSystem 稍后上课。目前,您可以将您的注意力转向定义 SolarSystemBody 班级。
您可以开始创建 SolarSystemBody 类及其 __init__() 方法。我正在截断 SolarSystem 下面代码中的类定义用于显示。在此代码块和以后的代码块中,包含 # ... 指出您之前编写的未显示的代码:
中的参数。 __init__() 方法是:
你也叫 add_body() 方法中定义的 SolarSystem 类将这个天体添加到太阳系中。稍后,您将向 __init__() 方法。
中定义另一个方法。 SolarSystemBody 用其当前的位置和速度移动物体:
这个 move() 方法重新定义 position 属性的 velocity 属性。我们已经讨论过你是如何用任意单位来计算距离和质量的。你也在使用任意的时间单位。每个‘时间单位’将是循环的一个迭代,您将使用它来运行模拟。因此, move() 将身体按一次迭代所需的数量移动,这是一个时间单位。
你们已经创建了Matplotlib结构,它将容纳太阳系及其所有天体。现在,您可以添加一个 draw() 方法 SolarSystemBody 若要在Matplotlib图上显示主体,请执行以下操作。您可以通过绘制一个标记来完成这一任务。
在这样做之前,您需要在 SolarSystemBody 若要控制将绘制的标记的颜色和大小以表示身体,请执行以下操作:
类属性 min_display_size 和 display_log_base 设置参数,以确定您将在3D图上显示的标记的大小。您设置了一个最小的大小,以便您显示的标记不太小,即使对于小的身体也是如此。您将使用对数标度将质量转换为标记大小,并将此对数的基值设置为另一个类属性。
这个 display_size 属性中的实例属性。 __init__() 方法在计算的标记大小和所设置的最小标记大小之间进行选择。为了在这个项目中确定身体的显示大小,你要使用它的质量。
您还可以添加 colour 属性 __init__() ,暂时默认为黑色。
要测试这些新添加的内容,可以在控制台/REPL中尝试以下内容:
第一次呼叫 body.draw() 在原点绘制物体,因为你使用的是太阳系天体的默认位置。打电话给 body.move() 用一个“时间单位”所需的数量移动身体。因为身体的速度是 (1, 1, 1) ,身体将沿着三个轴中的每一个移动一个单位。第二次呼叫 body.draw() 在第二个位置画太阳系天体。请注意,当您这样做时,轴将自动重新排列。您很快就会在主代码中处理这个问题。
您可以返回到 SolarSystem 通过给太阳系及其天体添加两种新的方法,将其分类和连接起来: update_all() 和 draw_all() :
这个 update_all() 方法穿过太阳系中的每一个物体,移动并画出每一个物体。这个 draw_all() 方法使用太阳系的大小设置三轴的限制,并通过 pause() 功能。此方法还清除轴,为下一个绘图做好准备。
您可以开始构建一个简单的太阳系,并通过创建一个名为 simple_solar_system.py :
运行此脚本时,您将看到一个黑体从情节的中心移动:
您可以更改三维图形的透视图,这样您就可以直接沿着其中一个轴查看3D轴。可以通过将视图的方位和仰角设置为 0 在……里面 SolarSystem.__init__() :
跑动 simple_solar_system.py 现在给出以下观点:
这个 x -轴现在垂直于你的屏幕。因为你在2D显示器上显示一个3D视图,所以你总是有一个方向与你用来显示图形的2D平面垂直。这一限制使得很难区分物体何时沿该轴运动。你可以通过改变身体的速度 simple_solar_system.py 到 (1, 0, 0) 并再次运行脚本。身体似乎是静止的,因为它只是沿着轴移动,从你的屏幕出来!
您可以通过根据它的不同更改标记的大小来改进三维可视化。 x -协调。靠近您的对象看起来更大,而更远的对象看起来更小。您可以对 draw() 方法中的 SolarSystemBody 班级:
self.position[0] 表示身体的位置。 x -轴,即垂直于屏幕的轴。因子 30 除以是一个任意因素,您可以使用它来控制您希望这种效果有多强。
在本教程的后面,您还将添加另一个功能,将有助于可视化的三维运动的恒星和行星。
你有一个太阳系,里面有可以移动的物体。到目前为止,如果您只有一个身体,那么代码可以正常工作。但那不是一个非常有趣的太阳系!如果你有两个或两个以上的物体,它们就会通过相互的引力相互作用。
在这篇文章的开头,我简要回顾了你需要处理两个物体之间的引力的物理。由于在这个项目中使用的是任意单位,所以可以忽略引力常数 G 简单地计算出由于两个物体之间的重力而产生的力,如:
一旦你知道了两个物体之间的力,因为F=ma,您可以计算出每个对象必须使用的加速度:
一旦你知道加速度,你就可以改变物体的速度。
您可以添加两个新方法,一个在 SolarSystemBody 另一个在 SolarSystem ,计算出任何两个物体之间的力和加速度,并穿过太阳系中的所有物体,并计算它们之间的相互作用。
第一种方法计算出两个物体之间的引力,计算每个物体的加速度,并改变两个物体的速度。如果您愿意,可以将这些任务分为三种方法,但在本例中,我将将这些任务放在 SolarSystemBody :
accelerate_due_to_gravity() 对类型的对象调用。 SolarSystemBody 需要另一个 SolarSystemBody 身体作为一种争论。参数 self 和 other 代表两个身体相互作用。此方法的步骤如下:
现在你可以计算出任何两个天体之间的相互作用,你可以计算出太阳系中所有天体之间的相互作用。你可以把你的注意力转移到 SolarSystem 类的类:
这个 calculate_all_body_interactions() 方法贯穿太阳系的所有天体。每个天体与太阳系中的其他天体相互作用:
现在,您已经准备好创建一个简单的太阳系,并测试您到目前为止编写的代码。
在这个项目中,您将关注创建两种类型的天体之一:太阳和行星。您可以为这些机构创建两个类。新类继承自 SolarSystemBody :
这个 Sun 类的默认质量为10,000个单位,并将颜色设置为黄色。使用字符串 'yellow' ,这是Matplotlib中的有效颜色。
在 Planet 类创建一个 itertools.cycle 对象有三种颜色。在这种情况下,这三种颜色是红色、绿色和蓝色。你可以使用你想要的任何RGB颜色,也可以使用任意数量的颜色。在这个类中,使用带有RGB值的元组来定义颜色,而不是使用颜色名称的字符串。这也是在Matplotlib中定义颜色的有效方法。使用 next() 每当你创建一个新的行星时。
您还将默认质量设置为10个单元。
现在,你可以创建一个太阳系,其中一个太阳和两个行星在 simple_solar_system.py :
在这个脚本中,您创建了一个太阳和两个行星。你把太阳和行星分配给变量 sun 和 planets ,但这并不是严格要求的,因为 Sun 和 Planet 对象被创建,它们被添加到 solar_system 你不需要直接引用它们。
你用一个 while 循环来运行模拟。循环在每次迭代中执行三个操作。运行此脚本时,将获得以下动画:
它起作用了,算是吧。你可以看到太阳锚定在这个太阳系的中心,行星受到太阳引力的影响。除了行星在包含你电脑屏幕的平面上的运动(这些是 y -和 z --轴),你也可以看到行星越来越大,因为它们也在 x -轴,垂直于屏幕。
然而,你可能已经注意到行星的一些奇怪的行为。当它们被安排在太阳后面时,行星仍然被展示在太阳的前面。这不是数学上的问题--如果你跟踪行星的位置,你会发现 x -坐标显示,它们实际上是在太阳后面,正如你所预料的那样。
这个问题来自Matplotlib在绘图中绘制对象的方式。Matplotlib按绘制对象的顺序将对象按层绘制。因为你在行星之前创造了太阳, Sun 对象放在第一位 solar_system.bodies 并作为底层绘制。您可以通过在行星之后创建太阳来验证这一事实,在这种情况下,您将看到行星总是出现在太阳后面。
你会希望Matplotlib按照正确的顺序绘制太阳系的天体,从最前的那些天体开始。要实现这一点,您可以对 SolarSystem.bodies 的值为基础的列表。 x -协调每次刷新3D图形的时间。下面是如何在 update_all() 方法 SolarSystem :
使用List方法 sort 带着 key 参数来定义要用于排序列表的规则。这个 lambda 函数设置此规则。在本例中,您使用的值是 position[0] 表示 x -协调。因此,每次你打电话 update_all() 在模拟中 while 循环中,根据其沿 x -轴心。
运行 simple_solar_system.py 现在的脚本如下:
现在,你可以想象行星的轨道,就像它们围绕太阳运行一样。不断变化的大小显示了它们的 x -位置,当行星在太阳后面时,它们被隐藏在视线之外!
最后,你也可以移除轴线和网格,这样你在模拟中看到的就是太阳和行星。可以通过添加对Matplotlib的调用来做到这一点。 axis() 方法 SolarSystem.draw_all() :
模拟现在看起来是这样的:
使用Matplotlib对Python中的一个三维太阳系进行的模拟现在已经完成。在下一节中,您将添加一个功能,允许您查看 XY -模拟底部的飞机。这有助于可视化太阳系中物体的三维动力学。
在Python的三维太阳系模拟中,为了帮助可视化身体的运动,您可以在动画的“地板”上添加一个2D投影。这个2D投影将显示物体在 XY -飞机。要实现这一点,您需要将另一个绘图添加到显示动画的相同轴上,并且只需在 x -和 y -坐标。你可以锚定 z -与图形底部协调,使2D投影显示在动画的地板上。
您可以首先将一个新参数添加到 __init__() 方法的 SolarSystem 班级:
新参数 projection_2d ,默认为 False ,将允许您在两个可视化选项之间切换。如果 projection_2d 是 False 动画将只显示身体在3D中移动,没有轴和网格,就像你最后看到的结果一样。
让我们开始做一些改变 projection_2d 是 True :
您所做的更改如下:
您还需要在 simple_solar_system.py 打开2D投影:
模拟现在看起来如下:
的二维投影 XY -平面使它更容易跟随轨道物体的路径。
我们将用Python完成另一个三维太阳系的模拟。您将使用已经定义的类来模拟双星系统。创建一个名为 binary_star_system.py 创造两个太阳和两个行星:
public class Star {
private String name;
private int d;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getD() {
return d;
}
public void setD(int d) {
this.d = d;
}
public String introduce() {
return "Star{" +
"name='" + name + '\'' +
", d=" + d +
'}';
}
}
在《群星》游戏中,存在一些无人行星,玩家可以通过控制台的修改,将这些无人行星变成大陆行星,是不是很神奇呢?下面各位小伙伴就跟着小编一起来看看详细的代码说明吧。
点击下载:群星中文版
《群星》控制台将无人行星修改为大陆行星方法:
用planet_resource可以加资源,不过是随机加在任意方格里的,没法控制,你只能加减加减这样反覆刷到满意为止
星球种类能用控制台改,如果你是指地块上障碍物的话那应该没法直接改...不过清障碍物不就是矿钱科技的事...
真要直接改指定地快的话大概只能改存档了...
如果是指没格子的,就先planet_class改成能殖民的然后planet_size改格子。
行星地面怎么改?
改成大陆或者盖亚应该是那个后缀单词
"planet_classpc_tropical"是改岛屿行星
GAIA星球是 pc_gaia
完整的列表:
[planet_class] 切换行星地表类型
例子:(选定行星后) planet_class pc_tropical 将当前选定行星改为热带行星
planet_class pc_continental 大陆世界
海洋是planet_class pc_ocean,盖亚是planet_class pc_gaia
荒漠是planet_class pc_desert
加资源
Energy 电力
planet_resource energy 200
Minerals 矿产
planet_resource minerals 200
Food 食物
planet_resource food 200
Physics Research 物理研究
planet_resource physics_research 100
Society Research 社会研究
planet_resource society_research 100
Engineering Research 工程研究
planet_resource engineering_research 100
Influence 影响力
planet_resource influence 200
planet_resource sr_alien_pets 200 外星宠物
planet_resource sr_betharian 200 贝赛里安石
planet_resource sr_dark_matter 200 暗物质
planet_resource sr_engos 200 莹戈气体
planet_resource sr_garanthium 200 铬镧铯矿石
planet_resource sr_living_metal 200 活金属
planet_resource sr_lythuric 200 莱素气体
planet_resource sr_neutronium 200 中子矿石
planet_resource sr_orillium 200 奥里矿石
planet_resource sr_pitharan 200 铍稀兰星辰
planet_resource sr_satramene 200 satramene气体
planet_resource sr_teldar 200 泰达尔水晶
planet_resource sr_terraform_gases 200 地球化气体
planet_resource sr_terraform_liquids 200 地球话液体
planet_resource sr_zro 200 氧化锆
注意,必须得有空格子
小编推荐:
《群星》堕落帝国全舰队遭遇突发事件代码
《群星》控制台代码大全
以上就是小编为大家带来的群星控制台修改大陆行星详细代码一览,希望能给大家一些帮助,欢迎关注游戏堡群星攻略大全。
笛卡尔1596年3月31日生于法国土伦省莱耳市的一个贵族之家,笛卡儿的父亲是布列塔尼地方议会的议员,同时也是地方法院的法官,笛卡尔在豪华的生活中无忧无虑地度过了童年。他幼年体弱多病,母亲病故后就一直由一位保姆照看。他对周围的事物充满了好奇,父亲见他颇有哲学家的气质,亲昵地称他为“小哲学家”。
父亲希望笛卡尔将来能够成为一名神学家,于是在笛卡儿八岁时,便将他送入La fleche(拉夫雷士)的耶稣会学校,接受古典教育。校方为照顾他的孱弱的身体,特许他可以不必受校规的约束,早晨不必到学校上课,可以在床上读书 。因此,他从小养成了喜欢安静,善于思考的习惯。
笛卡儿1612年到普瓦捷大学攻读法学,四年后获博士学位。1616年笛卡儿结束学业后,便背离家庭的职业传统,开始探索人生之路。他投笔从戎,想借机游历欧洲,开阔眼界。
这期间有几次经历对他产生了重大的影响。一次,笛卡尔在街上散步,偶然间看到了一张数学题悬赏的启事。两天后,笛卡尔竟然把那个问题解答出来了,引起了著名学者伊萨克·皮克曼的注意。皮克曼向笛卡尔介绍了数学的最新发展,给了他许多有待研究的问题。
与皮克曼的交往,使笛卡尔对自己的数学和科学能力有了较充分的认识,他开始认真探寻是否存在一种类似于数学的、具有普遍使用性的方法,以期获取真正的知识。
据说,笛卡尔曾在一个晚上做了三个奇特的梦。第一个梦是,笛卡尔被风暴吹到一个风力吹不到的地方;第二个梦是他得到了打开自然宝库的钥匙;第三个梦是他开辟了通向真正知识的道路。这三个奇特的梦增强了他创立新学说的信心。这一天是笛卡儿思想上的一个转折点,有些学者 也把这一天定为解析几何的诞生日。
然而长期的军旅生活使笛卡尔感到疲惫,他于1621年回国,时值法国内乱,于是他去荷兰、瑞士、意大利等地旅行。1625年返回巴黎。1628年移居荷兰,在荷兰长达20多年的时间里,笛卡尔对哲学、数学、天文学、物理学、化学和生理学等领域进行了深入的研究,并通过数学家梅森神父与欧洲主要学者保持密切联系。他的主要著作几乎都是在荷兰完成的。
1628年,笛卡尔写出《指导哲理之原则》,1634年完成了以尼古拉·哥白尼学说为基础的《论世界》。书中总结了他在哲学、数学和许多自然科学问题上的一些看法。1637年,笛卡儿用法文写成三篇论文《折光学》、《气象学》和《几何学》,并为此写了一篇序言《科学中正确运用理性和追求真理的方法论》,哲学史上简称为《方法论》,6月8日在莱顿匿名出版。1641年出版了《形而上学的沉思》,1644年又出版了《哲学原理》等重要著作。
勒奈·笛卡尔(Descartes,René),法国数学家、科学家和哲学家。他是西方近代资产阶级哲学奠基人之一。他的年轻时的勒奈·笛卡儿哲学与数学思想对历史的影响是深远的。人们在他的墓碑上刻下了这样一句话:“笛卡尔,欧洲文艺复兴以来,第一个为人类争取并保证理性权利的人。”
笛卡尔出生于法国,父亲是法国一个地方法院的评议员,相当于现在的律师和法官。一岁时母亲去世,给笛卡尔留下了一笔遗产,为日后他从事自己喜爱的工作提供了可靠的经济保障。8岁时他进入一所耶稣会学校,在校学习8年,接受了传统的文化教育,读了古典文学、历史、神学、哲学、法学、医学、数学及其他自然科学。但他对所学的东西颇感失望。因为在他看来教科书中那些微妙的论证,其实不过是模棱两可甚至前后矛盾的理论,只能使他顿生怀疑而无从得到确凿的知识,惟一给他安慰的是数学。在结束学业时他暗下决心:不再死钻书本学问,而要向“世界这本大书”讨教,于是他决定避开战争,远离社交活动频繁的都市,寻找一处适于研究的环境。1628年,他从巴黎移居荷兰,开始了长达20年的潜心研究和写作生涯,先后发表了许多在数学和哲学上有重大影响的论著。在荷兰长达20年的时间里,他集中精力做了大量的研究工作,在1634年写了《论世界》,书中总结了他在哲学、数学和许多自然科学问题上的看法。1641年出版了《行而上学的沉思》,1644年又出版了《哲学原理》等。他的著作在生前就遭到教会指责,死后又被梵蒂冈教皇列为禁书,但这并没有阻止他的思想的传播。
笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学家,在物理学、生理学等领域都有值得称道的创见,特别是在数学上他创立了解析几何,从而打开了近代数学的大门,在科学史上具有划时代的意义。
笛卡尔的主要数学成果集中在他的“几何学”中。当时,代数还是一门比较新的科学,几何学的思维还在数学家的头脑中占有统治地位。在笛卡尔之前,几何与代数是数学中两个不同的研究领域。笛卡尔站在方法论的自然哲学的高度,认为希腊人的几何学过于依赖于图形,束缚了人的想象力。对于当时流行的代数学,他觉得它完全从属于法则和公式,不能成为一门改进智力的科学。因此他提出必须把几何与代数的优点结合起来,建立一种“真正的数学”。笛卡尔的思想核心是:把几何学的问题归结成代数形式的问题,用代数学的方法进行计算、证明,从而达到最终解决几何问题的目的。依照这种思想他创立了我们现在称之为的“解析几何学”。1637年,笛卡尔发表了《几何学》,创立了直角坐标系。他用平面上的一点到两条固定直线的距离来确定点的位置,用坐标来描述空间上的点。他进而又创立了解析几何学,表明了几何问题不仅可以归结成为代数形式,而且可以通过代数变换来实现发现几何性质,证明几何性质。解析几何的出现,改变了自古希腊以来代数和几何分离的趋向,把相互对立着的“数”与“形”统一了起来,使几何曲线与代数方程相结合。笛卡尔的这一天才创见,更为微积分的创立奠定了基础,从而开拓了变量数学的广阔领域。最为可贵的是,笛卡尔用运动的观点,把曲线看成点的运动的轨迹,不仅建立了点与实数的对应关系,而且把形(包括点、线、面)和“数”两个对立的对象统一起来,建立了曲线和方程的对应关系。这种对应关系的建立,不仅标志着函数概念的萌芽,而且标明变数进入了数学,使数学在思想方法上发生了伟大的转折--由常量数学进入变量数学的时期。正如恩格斯所说:“数学中的转折点是笛卡尔的变数。有了变数,运动进入了数学,有了变数,辨证法进入了数学,有了变数,微分和积分也就立刻成为必要了。笛卡尔的这些成就,为后来牛顿、莱布尼兹发现微积分,为一大批数学家的新发现开辟了道路。
笛卡尔在其他科学领域的成就同样累累硕果。笛卡尔靠着天才的直觉和严密的数学推理,在物理学方面做出了有益的贡献。从1619年读了开普勒的光学著作后,笛卡尔就一直关注着透镜理论;并从理论和实践两方面参与了对光的本质、反射与折射率以及磨制透镜的研究。他把光的理论视为整个知识体系中最重要的部分。笛卡尔坚信光是“即时”传播的,他在著作《论人》和《哲学原理》中,完整的阐发了关于光的本性的概念。他还从理论上推导了折射定律,与荷兰的斯涅耳共同分享发现光的折射定律的荣誉。他还对人眼进行光学分析,解释了视力失常的原因是晶状体变形,设计了矫正视力的透镜。在力学方面,他提出了宇宙间运动量总和是常数的观点,创造了运动量守恒定律,为能量守恒定律奠定了基础。他还指出,一个物体若不受外力作用,将沿直线匀速运动。
笛卡尔在其他的科学领域还有不少值得称道的创见。他发展了宇宙演化论,创立了漩涡说。他认为太阳的周围有巨大的漩涡,带动着行星不断运转。物质的质点处于统一的漩涡之中,在运动中分化出土、空气和火三种元素,土形成行星,火则形成太阳和恒星。笛卡儿的这一太阳起源的旋涡说,比康德的星云说早一个世纪,是17世纪中最有权威的宇宙论。他还提出了刺激反应说,为生理学做出了一定的贡献。
笛卡尔近代科学的始祖。笛卡儿是欧洲近代哲学的奠基人之一,黑格尔称他为“现代哲学之父”。他自成体系,熔唯物主义与唯心主义于一炉,在哲学史上产生了深远的影响。同时,他又是一位勇于探索的科学家,他所建立的解析几何在数学史上具有划时代的意义。笛卡尔堪称17世纪的欧洲哲学界和科学界最有影响的巨匠之一,被誉为“近代科学的始祖”。
1649年冬,笛卡尔应瑞典女王克里斯蒂安的邀请,来到了斯德哥尔摩,任宫廷哲学家,为瑞典女王授课。由于他身体孱弱,不能适应那里的气候,1650年初便患肺炎抱病不起,同年二月病逝。终年54岁。1799年法国大革命后,笛卡尔的骨灰被送到了法国历史博物馆。 (补充:瑞典女王为了显示对知识的尊重,专门派一艘军舰接笛卡尔到瑞典)
笛卡尔的婚姻:与斯宾诺莎、布莱尼茨一样,笛卡尔终身未婚,没有享受到家庭生活所带来的快乐。他有一私生女,但不幸夭折,为其终生憾事。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款