“Python?蟒蛇也学数学吗?”
我困惑地看着乌兰,意识到自己犯了一个错误:Python直到年才出生,而那时乌兰已经去世五年了。想到这里,我觉得有点难过。
这是荷兰人圭多·范·罗森(GuidoVanRossum)多年后开发的一种编程语言。它可以帮助完成一些重复性和乏味的事务性任务。一开始,没有人对这种语言感兴趣,几十年来我都没有想到会有这种语言。后来,它在世界各地流行起来,变得很热。没关系,我可以提前用它来帮你。”我指着他画的素描。
乌兰对我暂时从未来借用Pyhton的能力没有表现出任何惊讶或困惑。这并不是因为他是一位能够理解四维生物生存条件的顶尖物理学家,而是因为在我协助Schrdinger进行量子实验时,他就认识了我。Schrdinger是奥地利人,乌拉姆出生在波兰,从格拉茨到华沙只有公里的车程。在这个距离上,即使你是中国同胞,你也是同伴,即使年龄相差20多岁,两人都是一年的朋友。
乌兰现象
“这是目前美国最快的计算机,每秒可以完成次计算。”乌兰带我走进电脑室,指着一台DEC生产的POP-5微型电脑。
“给你,也许只有电源可用。”我苦笑了一下,打开电脑,在键盘上打字,然后和乌拉姆讨论如何画质数分布图,他正用我的背操纵着咖啡机。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架“我打算这样做:首先我要创建一个函数,可以计算n内的质数,然后我要创建一个函数,将1变成n,逆时针生成一个方阵。调用这两个函数得到一个素数表和一个方数矩阵,然后将方阵中的素数设为,合数设为0…”
“哇,这个主意听起来很不错!”最后,我得到了一个灰度图像。白色像素表示质数,黑色像素表示合数。素数的分布——如果有的话,一眼就能看出来。”
这家伙的大脑真的很好,他不上计算机课也能学得很好。我斜眼看着乌兰,他诙谐地用咖啡杯堵住了嘴。
现在他明白了所有的事情,他不需要继续谈论我的计划,只需要写代码。首先导入所需的模块。如果所需的模块没有安装,您将不得不回到几十年前才能找到可用的模块。
importnumpyasnpfromPILimportImage
幸运的是,NumPy和pillow这两个模块已经安装在我的电脑上了,开始很顺利。定义另一个函数来找出所有不大于n的质数。
将1到n逆时针旋转排列成一个方阵有点困难。看到我能想到的,乌兰建议:“为了简化设计,我们可以限制n必须是平方数,这样的行数和列的最后一个方阵是n的算术平方根,它对你来说更容易编写程序。”
我接受了乌兰的建议。有了这个约束条件,思路一目了然:假设n的算术平方根为边,如果不考虑效率,可以先生成一个边*边的二维列表,其中所有元素均为None;如果是奇数,那么n位于右下角的二维列表,左边的n-1位于n,否则,n是位于左上角的二维列表,n,n-1位于正确的;然后从n开始按顺时针方向倒序写出这些数字。