Parte 1Parte IIParte IIIConsidere la solución algorítmica al problema número
38 del libro "Tareas para niños de 5 a 15 años"
Calcule la cantidad:
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 r a c 1 99 c d o t 100
(con un error de no más del 1% de la respuesta)
A continuación se muestra un algoritmo para calcular sumas parciales de esta serie en
Scheme (Lisp) en
drRacket (drRacket le permite realizar cálculos en fracciones ordinarias):
#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)
Los dos últimos ejemplos drRacket calculados con un error

Este programa se puede ejecutar en línea ide
ideone.com y
codepad.org .
El mismo algoritmo en 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))
Enlace a ideone.com
Si consideramos sumas parciales en fracciones ordinarias, podemos ver que la suma de la serie es
f r a c n n + 1
Déjame recordarte que
lim fracnn+1= frac11+ frac1n= frac11=1 a las
n to inftyEl segundo volumen del Curso de cálculo diferencial e integral 363 (4) considera el caso general
sum frac1( alpha+n)( alpha+n+1)= frac1 alpha+1
La tarea del
curso "Matemáticas para desarrolladores":
Encuentra el número de miembros en una secuencia
frac2n−14n+5 acostado fuera del intervalo
(1− frac11000;1+ frac11000)Pasemos al tema principal del artículo.
Consideremos un ejemplo más de un libro de problemas.
43) Números de conejos (Fibonacci), forman una secuencia
(a1=1),1,3,5,8,13,21,34,..., en el cual
an+2=an+1+an para todos
n=1,2,... . Encuentra el máximo divisor común de números
a100 y
a99 .
Respuesta: Dos números adyacentes de Fibonacci son coprimos, es decir.
gcd(un+1,un)=1(mcd es el máximo divisor común, es decir, MCD).
"Prueba del libro" Más allá de las páginas de un libro de texto de matemáticas "[10-11]
Encabezado de spoilerDe la igualdad un+2=un+1+un se sigue que gcd(un+2,un+1)= gcd(un+1,un) . Retrocediendo de esta manera, llegamos a gcd(u2,u1)= gcd(1,1)=1 y, por lo tanto, dos números adyacentes de Fibonacci son coprimos.
Prueba de que
gcd(un+2,un+1)= gcd(un+1,un) el libro no se da, pero de acuerdo con el algoritmo euclidiano
gcd(un+2,un+1)= gcd(un+1,r)donde
r - resto de la división
un+2 en
un+1y dado que para los números de Fibonacci
r=unentonces
gcd(un+2,un+1)= gcd(un+1,un) En la siguiente tarea, debe calcular la
proporción áurea ,
frac sqrt5+12 aprox1.618 . [Esta es la relación de aspecto de una postal que permanece similar al cortar un cuadrado cuyo lado es el lado más pequeño de la postal]
53) Para una secuencia de números de Fibonacci
an tareas 43 encuentran el límite de la relación
fracan+1an mientras se esfuerza
n hasta el infinito
fracan+1an=2, frac32, frac53, frac85, frac138, frac2113, frac3421.$
Considere los segmentos que representan las diferencias de dos miembros adyacentes de la serie.
fracan+1an .

Incluso miembros de la serie.
fracan+1an representar una secuencia creciente
xn frac32, frac85, frac2113,...,
Miembros de fila impares
fracan+1an representar una secuencia decreciente
yn2, frac53, frac138,...,
Por el lema de intervalo incrustado (Curso de cálculo diferencial e integral, 38)
c= limxn= limyn
Para nuestra fila en un punto
c igualdad justa
fracan+2an+1= fracan+1anDividiendo
an+2=an+1+an en
an+1 obtenemos la ecuación
fracan+2an+1=1+ fracanan+1 .
Al reemplazar
fracan+2an+1=x, fracanan+1= frac1x obtenemos la
ecuación cuadrática x=1+ frac1x .
Si en el programa de
geogebra conectamos los puntos 2 y
frac32 ,
frac32 y
frac53 ,
frac53 y
frac85 etc. - obtener una figura
similar
En general, existe un algoritmo estándar para calcular los números de Fibonacci en Python.
Este algoritmo está disponible en
Python.org def fib(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b fib(100)
Puedes consultar el
enlaceCambie este algoritmo para que imprima una aproximación a la proporción áurea. Para dos números adyacentes a y b, dividiremos la suma a + b por b
def fib(n): a, b = 0.0 , 1.0 while a < n: print((a+b)/b) a, b = b, a+b fib(100)
Puedes consultar el
enlaceAquí hay algunas tareas del tutorial
SICP con respecto a la
proporción áurea.
Las tareasEjercicio 1.13.Probar que
Fib (n) es el número entero más cercano a
varphin/ sqrt5 donde
varphi=(1+ sqrt5)/2 .
Ejercicio 1.35.Demuestra que la proporción áurea
varphi (sección 1.2.2) es un punto fijo de transformación
x a1+1/x y usa este hecho para calcular
varphi utilizando el procedimiento de punto fijo.
Ejercicio 1.37.... Defina el procedimiento cont-frac para que el cálculo (cont-frac ndk) dé el valor
k - fracción continua finita elemental. Pruebe su procedimiento calculando aproximaciones a 1 / φ con
(cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k)
para valores secuenciales
k .
El siguiente ejemplo del libro de tareas "Tareas para niños de 5 a 15 años"
54) Calcular fracción continua infinita
1+ frac12+ frac11+ frac12+ frac11+ frac12+...$
UPD Considera la ecuación
alpha=1+ frac12+ frac1 alpha
Según los teoremas 236 y 235 del libro "Teoría de números":
alpha= fracP1 alpha+P0Q1 alpha+Q0
Componimos una tabla de valores
Pn y
Qn a las
n=0,1:para que
alpha= frac3 alpha+12 alpha+1,2 alpha2−2 alpha−1=0y desde
alpha>0, entonces
alpha= frac1+ sqrt32
Considere el problema del libro "Detrás de las páginas de un libro de texto de matemáticas" [10-11]
4) Muestra ese número
sqrt1+ sqrt1+ sqrt1+... igual al número
varphi definiendo la proporción áurea.
Considera la
opción xn= sqrtc+ sqrtc+...+ sqrtcCurso de cálculo diferencial e integral, 35 (2)
De esta manera xn+1 obtenido de xn de acuerdo con la fórmula
xn+1= sqrtc+xn
... Por el teorema principal, opciones xn tiene un límite finito a . Para determinarlo, pasamos al límite en la igualdad
x2n+1=c+xn;$
Nos metemos de tal manera que a satisface la ecuación cuadrática
a2=c+a
Esta ecuación tiene las raíces de diferentes signos; pero el límite que nos interesa a no puede ser negativo, por lo tanto, es exactamente igual a la raíz positiva:
a= frac sqrt4c+1+12
De lo cual podemos concluir que la "proporción áurea" es una solución a la ecuación
a2=c+aa las
c=1 .
Además, en el Curso de cálculo diferencial e integral, 35 (3), se considera un algoritmo para calcular el número inverso
Dejar c Es cualquier número positivo, y pon xn=cyn . La relación de recurrencia escrita arriba será reemplazada por:
yn+1=yn(2−cyn)
Tomando el valor inicial y0 bajo la condición: 0<y0< frac1c lo entendemos yn aumentando monótonamente, tenderá a frac1c . Según este esquema, en las máquinas de conteo, se calcula el número inverso c .
Algoritmo de cálculo de números inversos
c en Python:
(
Ideone.com y
codepad.org )
def reciprocal(c,y0,n): arr=[] for i in range(n): arr.append(y0) y0=y0*(2-c*y0) return arr
La función recíproca toma un número como entrada
c valor inicial
y0 , número de iteraciones
n y devuelve una serie de "aproximaciones" al número
frac1c .
y0=0.1 a las
c<10y0=0.01 a las
10<c<100y0=0.001 a las
100<c<1000etc.
Ejemplos de cómo funciona la función recíproca con varios
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]
Interpretación geométrica
Intentemos usar el método tangente para aproximar el número inverso.
Tangentes
y=f′(x0)(x−x0)+f(x0) para funcionar gráfico
y= frac1x son expresados por la fórmula
y= frac2x0− fracxx20Números de sustitución
1,2,3,4,... en lugar de
x0 obtenemos las ecuaciones de las tangentes
y=2−x
y=1− fracx4
y= frac23− fracx9
y= frac12− fracx16
Construye estos gráficos

Si mueve la hipérbola hacia abajo
alpha , luego cruza el eje de abscisas en el punto
frac1 alpha .
La ecuación tangente se convierte en
y= frac2x0− fracxx20− alphaAdemás, equiparar la ecuación de la tangente a cero y expresar
x obtenemos la ecuación
x=x0− fracf(x0)f′(x0)En cambio
f(x0) sustituto
frac1x0− alphaEn cambio
f′(x0) sustituto
− frac1x20Obtenemos la expresión
x=x0+( frac1x0− alpha)x20Expandiendo los corchetes, obtenemos
x=x0+x0− alphax20Sustituto
0.1 en la ecuación
x=x0(2− alphax0) y ver qué valores "correrán"
x a las
alpha=2 tenemos
0.1,0.18,0.29,0.42,0.49,0.5Sustituyendo estos valores en la ecuación
y= frac2x0− fracxx20−2 nos ponemos directos
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

Extracción de raíz cuadrada
Volviendo a las expresiones irracionales, consideramos un método iterativo para extraer la raíz cuadrada.
Escribiremos un algoritmo usando
el método iterativo Heronxn+1= frac12(xn+ fracaxn)
def square_root(a,n):
codepad.orgCálculo de la raíz cuadrada utilizando fracciones continuas utilizadas por
Rafael BombelliPara encontrar el valor sqrtn , primero definimos toda su aproximación: sqrtn=a pmr donde 0<r<1 . Entonces n=(a pmr)2=a2 pm2ar+r2 . A partir de aquí es fácil deducir que r= frac|n−a2|2a pmr . Reemplazar la expresión resultante en la fórmula sqrtn=a pmr , obtenemos una expansión de fracción continua:
a pm frac|na2|2a pm frac|na2|2a pm frac|na2|2a pm cdots
Entonces, podemos escribir el algoritmo de extracción de raíz cuadrada usando descomposición en una fracción continua
def square_root(n,a,n_count):
codepad.orgEn general, los números reales y complejos, así como las funciones de una o más variables, pueden ser numeradores y denominadores privados.
El método de extracción de la parte entera le permite a uno representar un número irracional en forma de una fracción continua infinita con unidades en los numeradores (numeradores frecuentes iguales a la unidad).
Aquí hay un ejemplo de una expansión fraccional continua de un número
sqrt5 del libro "Álgebra"
sqrt5−2= frac( sqrt5−2)( sqrt5+2) sqrt5+2= frac1 sqrt5+2
De esta manera sqrt5=2+ frac1 sqrt5+2
Seleccione la parte entera del número. sqrt5+2:E( sqrt5+2)=4 . Significa sqrt5+2 puede ser representado como 4+ alpha . Está claro que alpha= sqrt5+2−4= sqrt5−2 por lo tanto sqrt5+2=4+ sqrt5+2 . Nuevamente, destruimos la irracionalidad en el numerador del segundo término:
sqrt5−2= frac1 sqrt5+2
El resultado es:
sqrt5=2+ frac14+ frac1 sqrt5+2
Hagamos otro paso similar:
sqrt5=2+ frac14+ frac14+ frac1 sqrt5+2
Es fácil ver que el proceso de aislar toda la parte y la formación de una fracción continua en este ejemplo no tiene fin. En cada nuevo denominador aparecerá 4 y plazo sqrt5−2 . Por lo tanto, está claro que sqrt5 se representa como una fracción continua infinita:
sqrt5=[2,4,4,4,...]
Hipótesis
Si
d in mathbbN, sqrtd notin mathbbN entonces la fracción continua del número
sqrtd+[ sqrtd] puramente periódico
Evarist Galois demostró esta hipótesis.
Es decir si a la parte no periódica de la fracción
[1;2,2,2,...]= sqrt2 agrega toda la parte
[ sqrt2]=1 entonces obtenemos una fracción puramente periódica
[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,...]Cloud Computing WolframAlpfaWolframAlpfa calcula fracciones continuas utilizando la operación de fracción continua
Calcular el valor
sqrt3el enlaceCalcular el valor
sqrt3+1el enlace Si en la descomposición de la raíz según el método de Bombelli
\ sqrt {n} = a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ { 2} |} {2a \ pm \ cdots}}}}}}}
agregar al primer término
a , obtenemos una fracción puramente periódica
\ sqrt {n} + a = 2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm \ cdots}}}}}}}
Queda por llevar la fracción a una forma más familiar (con unidades en el numerador).
Divide el numerador y el denominador de la fracción entre
|n−a2|$ obtenemos la expresión
\ 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}}}}}}}
De esta manera
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,...]
Escribiremos un programa que calcule la aproximación de fracción continua
[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.orgEn el cuarto paso obtenemos
6 frac38186305 que es igual
6.60555114... mientras que
sqrt13+3 aprox.6.60555127 .
PS Resuelva el problema ("Problemas para niños de 5 a 15 años")
27) Probar que el resto de la división de un número
2p−1 impar impar
p es igual a
1(ejemplos:
22=3a+1,24=5b+1,26=7c+1,210−1=1023=10 cdot93) .
Este problema se considera en el artículo
Amazing Adventures of Continued Fractions de la revista Quantum.
Libros:
"Tareas para niños de 5 a 15 años" V. I. Arnold.
"El curso del cálculo diferencial e integral" G. M. Fichtenholtz
"Teoría de los números" A. A. Buchstab
"Detrás de las páginas de un libro de texto de matemáticas" N. Ya. Vilenkin, L. P. Shibasov, Z. F. Shibasova
"Álgebra" N. Ya. Vilenkin, R. S. Guter, S. I. Schwarzburd
Aritmética digital Ercegovac Milos D., Lang Tomas
"La estructura e interpretación de los programas de computadora" Harold Abelson, Gerald Sassman
Ver también
El artículo "Sobre una tarea que ya no se ofrece en la entrevista".
El
blog de Spice IT Recruitment publica tareas de entrevistas en varias empresas.
Tareas para entrevistas en Yandex.
En
este video, A. Savvateev resuelve problemas con entrevistas en Tesla.