对比python学julia(第一章)--(第三节)山巅一寺一壶酒
在小学阶段背过圆周率的同学对这节的标题应该不陌生。π(3.14159…)是大家熟悉的普通无理数,但也是非常神秘的一组数字,例如几个世纪以来,埃及考古学家和神秘主义追随者一直痴迷于胡夫金字塔暗藏的圆周率之谜。因为该金字塔的塔基周长和高的比例是 1760/280,离 2π 只有小于 0.05%的差距。另外,它在许多电影里面也出现过,作为推动剧情的重要元素,甚至有一部美国惊悚电影直接以《圆周率》命名,而且这部电影还获得了1998 年的圣丹斯国际电影节剧情片导演奖。每年的3月14日被定为“圆周率日”,在 2019 年联合国教科文组织第四十届大会上正式宣布每年的 3 月 14 日是“国际数学日”。
从古到今,数学家们都在对圆周率的计算孜孜以求。出现了众多计算方法。其中印度数学家尼拉坎特哈发现的一个可用于计算圆周率π近似值的无穷级数(尼拉坎特哈级数)算是比较简单的了。该级数的展开公式如下:
π
=
3
+
4
2
×
3
×
4
−
4
4
×
5
×
6
+
4
6
×
7
×
8
−
4
8
×
9
×
10
+
4
10
×
11
×
12
…
π = 3 + {4} over {2 × 3 × 4} − {4} over {4 × 5 × 6} + {4} over {6 × 7 × 8} − {4} over {8 × 9 × 10} + {4} over {10 × 11 × 12} …
这个级数的收敛比较快,按照规律迭代计算若干次,结果就与π值非常接近。在python的IDLE环境下输入是这样的:
>>> 3+4/(2*3*4)-4/(4*5*6)+4/(6*7*8)-4/(8*9*10)+4/(10*11*12)
3.1427128427128426
那么julia该怎样输入呢?这里首先要介绍一下数学表达式和运算符了。实际上,大多数编程语言中,表达式都是一项基础功能,而且基本由操作数、运算符和括号等组成,它的书写方式、运算符、运算顺序等与数学中的基本一致。
算术表达式是通过算术运算符来运算的,又称为数值表达式。这里列举了基本的算术运算符和使用示例,见表:
|
描述 |
Python |
julia |
说明 |
|
加法运算 |
+ |
+ |
|
|
减法运算 |
− |
− |
|
|
乘法运算 |
* |
* |
|
|
除法运算 |
/ |
/ |
|
|
取模运算,返回除法的余数 |
% |
% |
|
|
整除运算(截断除法) |
// |
div |
Python:12//10=1 Julia:div(12,10)=1 |
|
幂运算,返回x的y次幂 |
** |
^ |
Python:a**2=4 Julia:a^2=4 |
简单来说,julia和python大多数运算符是相同的。所以,上面的圆周率计算,用julia来计算也与python基本上没什么差别:
julia> 3+4/(2*3*4)-4/(4*5*6)+4/(6*7*8)-4/(8*9*10)+4/(10*11*12)
3.1427128427128426
不过使用手工输入算式计算圆周率,仍然比较麻烦。在学习了后面的课程循环结构的程序设计之后,就可以编写程序自动进行计算,充分发挥计算机的优势。
对比python学julia(第一章)--(第三节)山巅一寺一壶酒的更多相关文章
- 路飞学城-Python爬虫集训-第一章
自学Python的时候看了不少老男孩的视频,一直欠老男孩一个会员,现在99元爬虫集训果断参与. 非常喜欢Alex和武Sir的课,技术能力超强,当然讲着讲着就开起车来也说明他俩开车的技术也超级强! 以上 ...
- python全栈第一章
第一章 Python基础变量定义规则:1.变量名只能是字母数字或者下划线的任意组合2.变量名的第一个字符不能是数字3.关键字不能申明为变量名定义方式:1.驼峰体AgeOfSzp2.下划线隔开Age_o ...
- 《零压力学Python》 之 第一章知识点归纳
第一章(初识Python)知识点归纳 Python是从ABC语言衍生而来的 ABC语言是Guido参与设计的一种教学语言,为非专业编程人员所开发的. Python是荷兰程序员 Guido Van Ro ...
- 路飞学城Python爬虫课第一章笔记
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...
- 《python可以这样学》第一章
一.Python基础 查看Python版本 Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AM ...
- python学习心得第一章
初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...
- Python基础教程-第一章-变量、函数、字符串
1.1变量 变量基本上就是代表(或者引用)某个值的名字,举例来说,如果希望用x代表3,只需要执行下面的语句即可: >>>x = 3 这样的操作称为赋值(assignment),值3赋 ...
- Python开发【第一章】:Python简介和入门
Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承. ...
- Python 学习系列----第一章:基础知识
1.1 常量-----不能改变它的值 1.2 数 在Python 中数可以分为整数.浮点数和复数. PS:在Python中不用区分'long int'类型.默认的整数类型可以任意长.(译者注:长度应该 ...
- python入门课程 第一章 课程介绍
1-1 Python入门课程介绍特点: 优雅.明确.简单适合领域: web网站和各种网络服务 系统工具和脚本 作为"胶水"语言把其他语言开发的模块包装起来方 ...
随机推荐
- ko编译常见问题
记录ko编译过程中遇到的常见问题: (1)找不到标准库头文件 解决方式:将lib库中的头文件链接到编译内核中.
- MySQL创建表的时候建立联合索引的方法
1.MySQL创建表建立联合索引的步骤 在MySQL中,联合索引(也称为复合索引或多列索引)是基于表中的多个列创建的索引.这种索引可以提高多列查询的性能,特别是当查询条件涉及这些列时.下面是一个详细的 ...
- 机器学习策略篇:详解如何改善你的模型的表现(Improving your model performance)
如何改善模型的表现 学过正交化,如何设立开发集和测试集,用人类水平错误率来估计贝叶斯错误率以及如何估计可避免偏差和方差.现在把它们全部组合起来写成一套指导方针,如何提高学习算法性能的指导方针. 所以想 ...
- System.lineSeparator()行分隔符的用法
System.lineSeparator()具体含义 从JDK的源码中,可以看出:它是从JDK1.7之后开始有的这个方法. 在UNIX系统下,System.lineSeparator()方法返回&qu ...
- 暴走漫画系列之高仿淘宝收货地址(附demo)
引语: 我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug. 这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱. 然后接着调试程序.他可能生意不好,就无聊的看看我在干什么,然后过了 ...
- flutter 尝试创建第一个页面(三)
新建目录 assets 存放图片 在pubspec..yaml 中添加 flutter: # The following line ensures that the Material Icons f ...
- 使用flume将数据sink到HBase
===========>先创建Hbase表和列族<================案例1:源数据一行对应Hbase的一列存储(hbase-1.12没有问题)================ ...
- P6655 题解
直接计数其实不好记,不如计数转期望. 令 \(f_i\) 表示点 \(i\) 成为制高点概率,不难发现期望就是 \(\sum f_i\). 根据定义对于 \(f\) 我们有如下转移 \(f_i = \ ...
- Django详细笔记
django 学习 特点 快速开发 安全性高 可伸缩性强 URL 组成部分 URL: 同意资源定位符 一个URL由以下几部分组成 scheme://host:port/path/?query-stri ...
- Redis缓存雪崩,击穿,穿透以及解决方案
Redis读写过程 一般情况下,Redis都是作为client与MySQL间的一层缓存,尽量减少MySQL的读压力,数据流向如图所示: Redis的五种数据类型及使用场景 String 这个其实没啥好 ...