Tareas del libro de texto escolar I

Parte 1
Parte II
Parte III

Considere 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 infty

El 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  frac2n14n+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 spoiler
De 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+1

y dado que para los números de Fibonacci r=un
entonces
 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 yn

2, 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+1an

Dividiendo 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

Para comparar




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 enlace
Cambie 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 enlace

Aquí hay algunas tareas del tutorial SICP con respecto a la proporción áurea.
Las tareas
Ejercicio 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:

12
P13
Q12


para que  alpha= frac3 alpha+12 alpha+1,2 alpha22 alpha1=0

y 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+...+ sqrtc
Curso 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+a
a 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(2cyn)


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<10
y0=0.01 a las 10<c<100
y0=0.001 a las 100<c<1000
etc.
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)(xx0)+f(x0) para funcionar gráfico y= frac1x son expresados ​​por la fórmula y= frac2x0 fracxx20

Números de sustitución 1,2,3,4,... en lugar de x0 obtenemos las ecuaciones de las tangentes

y=2x


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 alpha
Ademá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 alpha
En cambio f(x0) sustituto  frac1x20

Obtenemos la expresión x=x0+( frac1x0 alpha)x20
Expandiendo los corchetes, obtenemos x=x0+x0 alphax20

Sustituto 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.5

Sustituyendo estos valores en la ecuación y= frac2x0 fracxx202 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 Heron

xn+1= frac12(xn+ fracaxn)


 def square_root(a,n): # a -  , n -   x0=1 #    1 arr=[] for i in range(n): arr.append(x0) #      x0=0.5*(x0+a/x0) #      return arr print square_root(2,10) 

codepad.org

Cálculo de la raíz cuadrada utilizando fracciones continuas utilizadas por Rafael Bombelli

Para 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|na2|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): # n- , a -    x0=a #    a arr=[] for i in range(n_count): #       a arr.append(x0-a) #  a x0=2*a+(na*a)/x0 return arr print square_root(2.0,1.0,10) 

codepad.org

En 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"

 sqrt52= frac( sqrt52)( 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+24= sqrt52 por lo tanto  sqrt5+2=4+ sqrt5+2 . Nuevamente, destruimos la irracionalidad en el numerador del segundo término:

 sqrt52= 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  sqrt52 . 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 WolframAlpfa
WolframAlpfa calcula fracciones continuas utilizando la operación de fracción continua
Calcular el valor  sqrt3
el enlace
Calcular el valor  sqrt3+1
el 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 |na2|$ 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.org
En 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 2p1 impar impar
p es igual a 1
(ejemplos: 22=3a+1,24=5b+1,26=7c+1,2101=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.

Source: https://habr.com/ru/post/es419237/


All Articles