如何用Python优雅证明并解决第一次数学危机

admin 2024年2月12日13:58:13评论11 views字数 1284阅读4分16秒阅读模式

第一次数学危机发生在大约公元前400年左右的古希腊时期。

当希腊的大哥们突然发现直角三角形两边长为1时,其斜边好像是个算不出具体结果的东西。突然感叹:卧槽,天塌了,算不出来啊!

然后后面数学领域的研究主要围绕着无理数的发现而展开。

当时无理数好像很吓人

如何用Python优雅证明并解决第一次数学危机

由于无理数的存在,毕达哥拉斯学派的数学体系出现了漏洞,许多原本被认为是不证自明的真理开始受到质疑。所以书贤想说:

真理是禁得起检验的,经不起检验的那只是局部适应。

那么对于无理数我们要从历史上去研究分析,当时没有实数集,最广的数系是有理数系,那么根据有理数的定义:

有理数是形如a/b(其中a和b属于N,且b不为0)的数。

首先我们要先证明出根号二不属于有理数:

假设根号二是有理数,那么它可以表示为两个整数的商,即存在整数p和q(q ≠ 0),使得√2 = p/q。

第一步,基于上述假设,我们可以得到方程:p^2 = 2q^2。这意味着p^2是偶数,因为2q^2一定是偶数。

第二步,由于p是整数,那么p也是偶数(因为偶数的平方是偶数)。因此,我们可以设p = 2k,其中k是整数。

第三步,将p = 2k代入p^2 = 2q^2,我们得到(2k)^2 = 2q^2,即4k^2 = 2q^2。进一步化简,得到q^2 = 2k^2。

第四步,与第一步类似,由于q是整数,那么q^2也是偶数,这意味着q也是偶数。因此,我们可以设q = 2m,其中m是整数。

第五步,将q = 2m代入q^2 = 2k^2,我们得到(2m)^2 = 2k^2,即4m^2 = 2k^2。进一步化简,得到k^2 = 2m^2。

很明显了,现在我们得到的是两个偶数,而我们定义的是两个不全为偶数的最简分式,所以和题意不符。

使用Python简单证明√2不是有理数系的方法:

本代码并不严谨,由于计算机系统的离散性,我们只能简单列举N数系的几个数字来表示。


def prove_sqrt2_irrational():

    # 假设存在一个有理数p/q使得p/q = sqrt(2)

    # 我们可以遍历一定范围内的整数p和q来检查这个假设是否成立

   for q in range(1, 100): # 遍历q的值

       for p in range(1, 100): # 遍历p的值

           if p**2 == 2*q**2: # 检查是否满足2q^2 = p^2

                print(f"找到了一个有理数 {p}/{q} 使得 {p}/{q} = sqrt(2)!")

                return

    print("在我们遍历的范围内,没有找到满足条件的有理数p/q。")

    print("因此,我们可以合理怀疑根号二不是有理数。")

prove_sqrt2_irrational()

      存在即合理,实数系越来越严谨了

​存在决定意识,数学体系的发展必须要适应现实生产环境,所以我们只能将有理数系进行扩充,扩充到实数集,所以将无理数纳入到数系中,以此经验,后面将复数系也这样纳入到数系中。随着拓扑学的发展,实数系也越来越完善和严谨,那个洞也在慢慢被堵上。

这样,数学跟随时代和生产的需要将会越来越强大。

原文始发于微信公众号(代码小铺):如何用Python优雅证明并解决第一次数学危机

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月12日13:58:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何用Python优雅证明并解决第一次数学危机http://cn-sec.com/archives/2488805.html

发表评论

匿名网友 填写信息