返回

编程之战

首页
关灯
护眼
字体:
第十二章 丢番图方程
书架管理 返回目录
    在杨成的软磨硬泡,威逼利诱之下,“皮卡丘系统”终于作出决定。

    那就是把杨成送到有海景的地方去看海。

    古希腊亚历山大港,地中海气候给这里带来了丰沛的降水。

    这里尤其以盛产数学家和哲学家闻名。

    其中最富盛名的数学家自然包括丢番图。

    海港边一座并不起眼的小茅屋,晚上睡在这里能听到海浪轻轻拍打礁石的声音,这里居住着年迈的丢番图和他的弟子。

    “老师请用”。

    杨成用一个小碗装满煮沸的清水,小心翼翼地递给一位老者。

    老者年过八旬,唯一的儿子先他而去,所有的寄托就在这个弟子身上了。

    丢番图喝了一小口清水,看着眼前这个可爱的年轻人,眼中充满了慈爱。

    “徒弟,为师今天要考考你,所学如何?”

    “老师尽管吩咐”,杨成毕恭毕敬地侍立在一旁。

    丢番图拿起一块松软的石膏,在墙壁上颤巍巍地,一笔一划,写出一个方程式。

    “已知x*x-4y*y=n”。

    “若n为已知量,则x,y作何解?”

    杨成看到这方程的第一眼,就明白老师的意思了,他这是在考自己如何求出正整数解来。

    毕竟这个时代,还停留在正有理数求解阶段。

    “你不要急着做,先慢慢想一下,老师先出去走走”。

    说完,丢番图拄着木杖,缓缓地出了门。

    杨成看了看墙上的公式,开始了思索。

    这是一个著名的丢番图方程,或者说是不定方程。

    当杨成看到这个方程的左边x*x-4y*y,他就有种感觉。

    它可以转化为(x-2y)*(x2y)。

    而且这必然是第一步。

    因为等式右边的常量n,它有可能是一个很大的数。

    如果尝试用穷举法,效率是很低的。

    但可以尝试分解这个常量,把它因式分解成两项。

    比方说,n=24,分解成两项有如下的可能:

    [1,24],[2,12],[3,8],[4,6]

    拿这些可能的项往式子上套,便可得四个方程组:

    x-2y=1

    x2y=24

    --------------

    x-2y=2

    x2y=12

    --------------

    x-2y=3

    x2y=8

    --------------

    x-2y=4

    x2y=6

    这样就转化成了求四个二元一次方程。

    最后,再选取其中的正整数解即可。

    杨成调出系统编辑器,把这个求解过程写成了一个通用的函数,无论n是什么,都可以通过这个函数来求解。

    似乎有一种古老而神秘的力量感知到了这个函数。

    墙壁上,丢番图所写的那个方程式慢慢地被金色的线条所环绕。

    “叮!”,系统声音响起来。

    “恭喜您完成了丢番图方程求解任务!”

    “先前积分24分”。

    “因式分解求丢番图方程奖励2分”。

    “当前积分26分,击败了全球16%的玩家,请您再接再厉!”

    “成哥好棒喔!”。

    “皮卡丘系统”谄媚地说着肉麻的话,浑然不顾自己gm的身份。

    “少拍哥哥马屁了”,杨成白了系统一眼。

    “真想帮哥哥做点实事的话”,杨成话锋一转,面露狡黠之色。

    “给我安排个希腊妹子晚上过来耍耍啊!”

    “呃~”,皮卡丘一时语塞。

    “成哥,要不要继续来玩玩啊?”。

    这人工智能系统犹如拉皮条般怂恿着杨成。

上一章 目录 下一章