第一部分第二部分第三部分考虑一下“ 5至15岁儿童的任务”一书中针对问题
38的算法解决方案
计算金额:
f r a c 1 1 c d o t 2 + f r a c 1 2 c d o t 3 + f r a c 1 3 c d o t 4 + 。。。+ ˚F ř 一个Ç 1个99 Ç d ö 吨100
(错误不超过答案的1%)
以下是在
drRacket的 Scheme (Lisp)中计算此系列的部分和的算法(drRacket允许您以普通分数执行计算):
#lang racket (define series_sum ( lambda (n) (if (= n 0) 0 (+ (/ 1 (* n (+ n 1))) (series_sum(- n 1))) ) ) ) (series_sum 10) (series_sum 100) (series_sum 1000) (series_sum 10000) (series_sum 100000) (series_sum 1000000) (define series_sum_1 ( lambda (n) (if (= n 0) 0 (+ (/ 1.0 (* n (+ n 1.0))) (series_sum_1(- n 1.0))) ) ) ) (series_sum_1 10) (series_sum_1 100) (series_sum_1 1000) (series_sum_1 10000) (series_sum_1 100000) (series_sum_1 1000000)
最后两个示例drRacket计算出错误

该程序可以在
ideide.com和
codepad.org上运行。
Python中的相同算法 def series_sum(n): if n==0: return 0 else: return 1.0/(n*(n+1.0))+series_sum(n-1.0) print(series_sum(10)) print(series_sum(100))
链接到ideone.com
如果我们考虑普通分数的部分和,我们可以看到级数的和是
f r a c n n + 1
让我提醒你
lim fracnn+1= frac11+ frac1n= frac11=1 在
n\至 infty微分与积分学课程363(4)的第二卷考虑了一般情况
sum frac1( alpha+n)( alpha+n+1)= frac1 alpha+1
“开发人员数学”
课程中 的任务 :
查找序列中的成员数
frac2n−14n+5 躺在间隔之外
(1− frac11000;1+ frac11000)让我们继续本文的主题。
让我们考虑一本问题书中的另一个示例。
43 。 兔子数(斐波纳契数),形成一个序列
(a1=1),1、3、5、8、13、21、34,..., 在其中
an+2=an+1+an 给大家
n=1,2,... 。 找到最大的公约数除数
a100 和
a99 。
答案:两个相邻的斐波那契数是互质数,即
gcd(un+1,un)=1(gcd是最大的公约数,即GCD)。
“书中的证明”,超出数学教科书的范围” [10-11]
扰流板方向从平等 un+2=un+1+un 因此 gcd(un+2,un+1)= gcd(un+1,un) 。 以这种方式进行备份,我们来 gcd(u2,u1)= gcd(1,1)=1 ,因此两个相邻的斐波那契数是互质的。
证明
gcd(un+2,un+1)= gcd(un+1,un) 这本书没有给出,而是根据欧几里得算法
gcd(un+2,un+1)= gcd(un+1,r)在哪里
-除法师
un+2 在
un+1而且因为斐波那契数
r=un然后
gcd(un+2,un+1)= gcd(un+1,un) 在下一个任务中,您需要计算
黄金分割率 ,
frac sqrt5+12\约1,618 。 [这是明信片的长宽比,在切开一边为明信片较小边的正方形时,仍保持相似。]
53 。 对于斐波那契数列
an 任务43找到关系的极限
fracan+1an 在努力的同时
n 到无穷大:
fracan+1an=2, frac32, frac53, frac85, frac138, frac2113, frac3421。
考虑代表该系列两个相邻成员之间差异的细分
fracan+1an 。

甚至该系列的成员
fracan+1an 代表一个不断增长的序列
xn frac32, frac85, frac2113,...,
奇数行成员
fracan+1an 代表递减顺序
yn2, frac53, frac138,...,
通过嵌入的间隔引理(微分和积分学课程,38)
c= limxn= limyn
对于我们在某一时刻的行
c 公平平等
fracan+2an+1= fracan+1an划分
an+2=an+1+an 在
an+1 我们得到方程式
fracan+2an+1=1+ fracanan+1 。
通过更换
fracan+2an+1=x, fracanan+1= frac1x 我们得到
二次方程 x=1+ frac1x 。
如果在
geogebra程序中
我们将点2和
frac32 ,
frac32 和
frac53 ,
frac53 和
frac85 等 -得到一个
相似的数字

通常,在Python中有一种用于计算斐波纳契数的标准算法。
该算法在
Python.org上可用
def fib(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b fib(100)
您可以检查
链接更改此算法,以使其打印出近似黄金分割率。 对于两个相邻的数字a和b,我们将a + b的总和除以b
def fib(n): a, b = 0.0 , 1.0 while a < n: print((a+b)/b) a, b = b, a+b fib(100)
您可以检查
链接这是
SICP教程中有关黄金分割
率的一些任务。
任务练习1.13。证明
Fib(n)是最接近的整数
varphin/ sqrt5 在哪里
varphi=(1+ sqrt5)/2 。
练习1.35。表明黄金分割率
varphi (第1.2.2节)是转型的固定点
x\到1+1/x ,并使用此事实进行计算
varphi 使用定点过程。
练习1.37。...定义cont-frac过程,以便计算(cont-frac ndk)给出值
k -元素有限连续分数。 通过计算与1的近似值来测试您的程序
(cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k)
对于顺序值
k 。
下面的示例来自任务书“ 5至15岁儿童的任务”
54 。 计算无限连续分数
1+ frac12+ frac11+ frac12+ frac11+ frac12+...
UPD 考虑方程式
alpha=1+ frac12+ frac1 alpha
根据《数论》一书中的定理236和235:
alpha= fracP1 alpha+P0Q1 alpha+Q0
我们组成一个价值表
Pn 和
Qn 在
n=0,1:这样
alpha= frac3 alpha+12 alpha+1,2 alpha2−2 alpha−1=0由于
alpha>0, 然后
alpha= frac1+ sqrt32
考虑一下“数学课本后面”一书中的问题[10-11]
4 。 显示该号码
sqrt1+ sqrt1+ sqrt1+... 等于数字
varphi 定义黄金分割率。
考虑
选项 xn= sqrtc+ sqrtc+...+ sqrtc微分与积分的过程,35(2)
这样 xn+1 从...获得 xn 根据公式
xn+1= sqrtc+xn
...根据主定理,选项 xn 有一定的限制 一 。 为了确定它,我们将等式传递到极限
x2n+1=c+xn;
我们以这样的方式 一 满足二次方程
a2=c+a
这个等式的根源不同。 但是我们感兴趣的极限 一 不能为负,因此,它恰好等于正根:
a= frac sqrt4c+1+12
从中我们可以得出结论,“黄金比例”是方程的解
a2=c+a在
c=1 。
此外,在微分和积分学课程35(3)中,考虑了用于计算逆数的算法
让 c 是任何正数,并放入 xn=cyn 。 上面写的递归关系将被替换为:
yn+1=yn(2−cyn)
取初始值 y0 在以下条件下: 0<y0< frac1c 我们明白了 yn 单调增加,往往会 frac1c 。 根据此方案,在计数机上,计算逆数 c 。
逆数计算算法
c 在Python中:
(
Ideone.com和
codepad.org )
def reciprocal(c,y0,n): arr=[] for i in range(n): arr.append(y0) y0=y0*(2-c*y0) return arr
倒数功能以数字作为输入
c 初始值
y0 ,迭代次数
n 并返回数字的“近似值”数组
frac1c 。
y0=0.1 在
c<10y0=0.01 在
y0=0.001 在
100<c<1000等
互惠函数如何在各种情况下工作的示例
c >>> reciprocal(3,0.1,10)
[0.1、0.17、0.2533、0.31411733000000003、0.3322255689810133、0.3333296519077525,
0.3333333332926746、0.3333333333333333337、0.3333333333333333337、0.33333333333333337]
>>> reciprocal(8,0.1,10)
[0.1、0.12、0.1248、0.12499968、0.1249999999991808、0.125、0.125、0.125、0.125、0.125]
>>> reciprocal(5,0.1,10)
[0.1,0.15000000000000002,0.18750000000000003,0.19921875000000003,0.19999694824218753,0.1999999999534339,0.20000000000000004,0.19999999999999998,
0.19999999999999998、0.19999999999999998]
几何解释
让我们尝试使用切线法来近似反数。
切线
y=f′(x0)(x−x0)+f(x0) 功能图
y= frac1x 用公式表示
y= frac2x0− fracxx20替换数字
1,2,3,4,... 代替
x0 我们得到切线方程
y=2−x
y=1− fracx4
y= frac23− fracx9
y= frac12− fracx16
建立这些图

如果将双曲线下移到
alpha 然后它越过横坐标
frac1 alpha 。
切线方程转换为
y= frac2x0− fracxx20− alpha此外,将切线的方程式等于零并表示
x 我们得到方程式
x=x0− fracf(x0)f′(x0)相反
f(x0) 替代品
frac1x0− alpha相反
f′(x0) 替代品
− frac1x20我们得到表达
x=x0+( frac1x0− alpha)x20扩大括号,我们得到
x=x0+x0− alphax20代替
0.1 进入方程式
x=x0(2− alphax0) 并查看哪些值将“运行”
x 在
alpha=2 我们得到
0.1、0.18、0.29、0.42、0.49、0.5将这些值代入方程式
y= frac2x0− fracxx20−2 我们得到直接
y=0.111− fracx0.897
y=0.222− fracx0.81
y=0.816− fracx0.504
y=0.857− fracx0.49
y=1.5− fracx0.326
y=2− fracx0.25

平方根提取
回到非理性表达式,我们考虑一种提取平方根的迭代方法。
我们将使用
Heron迭代方法编写算法
xn+1= frac12(xn+ fracaxn)
def square_root(a,n):
codepad.org使用
Rafael Bombelli使用的连续分数计算平方根
寻找价值 sqrtn ,首先我们定义其整体近似值: sqrtn=a pmr 在哪里 0<r<1 。 然后 n=(a pmr)2=a2 pm2ar+r2 。 从这里很容易推断出 r= frac|n−a2|2a pmr 。 在公式中替换结果表达式 sqrtn=a pmr ,我们得到了连续的分数扩展:
a pm frac|na2|2a pm frac|na2|2a pm frac|na2|2a pm cdots
因此,我们可以编写使用分解成连续分数的平方根提取算法
def square_root(n,a,n_count):
codepad.org通常,实数和复数以及一个或多个变量的功能可以是私有分子和分母。
提取整数部分的方法允许以无穷连续分数的形式表示无理数,其分子为单位(频繁的分子等于1)。
这是一个连续小数扩展的例子
sqrt5 摘自《代数》一书
sqrt5−2= frac( sqrt5−2)( sqrt5+2) sqrt5+2= frac1 sqrt5+2
这样 sqrt5=2+ frac1 sqrt5+2
选择数字的整数部分 sqrt5+2:E( sqrt5+2)=4 。 均值 sqrt5+2 可以表示为 4+ alpha 。 很明显 alpha= sqrt5+2−4= sqrt5−2 因此 sqrt5+2=4+ sqrt5+2 。 再次,我们消除第二项分子中的非理性:
sqrt5−2= frac1 sqrt5+2
结果是:
sqrt5=2+ frac14+ frac1 sqrt5+2
让我们执行另一个类似的步骤:
sqrt5=2+ frac14+ frac14+ frac1 sqrt5+2
容易看出,在该示例中,将整个部分分离出来并形成连续部分的过程没有止境。 在每个新分母中都会出现 4 和期限 sqrt5−2 。 因此,很明显 sqrt5 表示为无限的连续分数:
sqrt5=[2,4,4,4,...]
假说
如果
d in mathbbN, sqrtd notin mathbbN 然后是数字的连续分数
sqrtd+[ sqrtd] 纯粹是周期性的。
Evarist Galois证明了这一假设。
即 如果是分数的非周期部分
[1;2,2,2,...]= sqrt2 添加整个部分
[ sqrt2]=1 那么我们得到一个纯周期性的分数
[2,2,2,...] 。
sqrt3=[1;1,2,...]; sqrt3+1=[2,1,...] sqrt5=[2;4,4,4,...]; sqrt5+2=[4,4,4,...] sqrt6=[2;2,4,...]; sqrt6+2=[4,2,...] sqrt13=[3;1,1,1,1,6,...]; sqrt13+3=[6,1,1,1,1,1,...]云计算WolframAlpfaWolframAlpfa使用连续分数运算来计算连续分数
计算值
sqrt3链接计算值
sqrt3+1链接 如果在根中按照Bombelli方法分解
\ sqrt {n} = a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ { 2} |} {2a \ pm \ cdots}}}}}}}
添加到第一学期
一 ,我们得到一个纯周期性分数
\ sqrt {n} + a = 2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm \ cdots}}}}}}}
剩下的是使分数变成更熟悉的形式(分子中包含单位)。
将分数的分子和分母除以
|n−a2| 我们得到表达
\ sqrt {n} + a = 2 a \ pm {\ frac {1} {\ frac {2a} {| na ^ {2} |} \ pm {\ frac {1} {2a \ pm {\ frac { 1} {\ frac {2a} {| na ^ {2} |} \ pm \ cdots}}}}}}}
这样
sqrt2+1=2+ frac1 frac21+ frac12+ frac1 frac21+。..=[2,2,2,...]
sqrt3+1=2+ frac1 frac22+ frac12+ frac1 frac22+。..=[2,1,...]
sqrt5+2=4+ frac1 frac41+ frac14+ frac1 frac41+。..=[4,4,4,...]
sqrt6+2=4+ frac1 frac42+ frac14+ frac1 frac42+。..=[4,2,...]
sqrt13+3=6+ frac1 frac64+ frac16+ frac1 frac64+。..=[6, frac32,...]
我们将编写一个程序来计算连续分数近似值
[6, frac32,...] #lang racket (define continued_fraction ( lambda (n) (if (= n 0) 1 (+ 6 (/ 1 (+ 3/2 (/ 1 (continued_fraction(- n 1)))))) ))) (continued_fraction 4)
codepad.org在第四步中,我们得到
6 frac38186305 等于
6.60555114... 一会儿
sqrt13+3\大约6.60555127 。
PS解决问题(“ 5至15岁儿童的问题”)
27 。 证明数字的余数
2p−1 奇数素数
p 等于
1(例如:
2 2 = 3,一个+ 1 ,2 4 = 5,b + 1 ,2 6 = 7,c ^ + 1 ,2 10 - 1 = 1023 = 10 Ç d ö 吨93 ) 。
《量子》杂志
的“连续分数的
惊人历险记”中考虑了此问题。
书籍:
“面向5至15岁儿童的任务”,V。I. Arnold。
“微分和积分学的过程” G. M. Fichtenholtz
“数论” A. A. Buchstab
“在数学教科书的页面后面” N. Ya。Vilenkin,L.P。Shibasov,Z.F。Shibasova
“代数” N. Ya。Vilenkin,R。S. Guter,S。I. Schwarzburd
数字算法Ercegovac Milos D.,Lang Tomas
“计算机程序的结构和解释” Harold Abelson,Gerald Sassman
另请参阅
文章 “关于采访中不再提供的一项任务”。
Spice IT Recruitment的
博客向各个公司发布了采访任务。
Yandex中的采访
任务 。
在
此视频中, A。Savvateev通过在特斯拉的采访解决了问题。