Tarefas do livro escolar I

Parte I
Parte II
Parte III

Considere a solução algorítmica para o problema número 38 do livro "Tarefas para crianças de 5 a 15 anos"

Calcule a quantidade:

 f r um c 1 1 c d o t 2  + f r um c 1 2 c d o t 3 + F R um C 1 3 c d o t 4 + . . . + F r um c 1 99 c d o t 100      


(com um erro não superior a 1% da resposta)

Abaixo está um algoritmo para calcular somas parciais desta série no esquema (Lisp) no drRacket (o drRacket permite executar cálculos em frações comuns):

#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) 


Os últimos dois exemplos drRacket calculados com um erro



Este programa pode ser executado no ide ide.com.com online e codepad.org .

O mesmo algoritmo em 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)) 

Link para ideone.com


Se considerarmos somas parciais em frações comuns, podemos ver que a soma da série é

 f r a c n n + 1



Deixe-me lembrá-lo que  lim fracnn+1= frac11+ frac1n= frac11=1 às n a infty

O segundo volume do Curso de Cálculo Diferencial e Integral 363 (4) considera o caso geral

 sum frac1( alpha+n)( alpha+n+1)= frac1 alpha+1



A tarefa do curso "Matemática para Desenvolvedores":
Encontre o número de membros em uma sequência  frac2n14n+5 deitado fora do intervalo (1 frac11000;1+ frac11000)



Vamos para o tópico principal do artigo.


Vamos considerar mais um exemplo de um livro de problemas.
43 Números de coelhos (Fibonacci), formam uma sequência (a1=1),1,3,5,8,13,21,34,..., em que an+2=an+1+an para todos n=1,2,... . Encontre o maior divisor comum de números a100 e a99 .

Resposta: Dois números Fibonacci adjacentes são coprime, ou seja,  gcd(un+1,un)=1
(gcd é o maior divisor comum, ou seja, GCD).

“Prova do livro“ Além das páginas de um livro de matemática ”[10-11]
Título de spoiler
Da igualdade u n + 2 = u n + 1 + u n segue-se que  g c d ( u n + 2 , u n + 1 ) = g c d ( u n + 1 , u n )  . Fazendo o backup dessa maneira, chegamos a  gcd(u2,u1)= gcd(1,1)=1 e, portanto, dois números adjacentes de Fibonacci são coprime.

Prova de que  gcd(un+2,un+1)= gcd(un+1,un) o livro não é dado, mas de acordo com o algoritmo euclidiano
 gcd(un+2,un+1)= gcd(un+1,r)
onde r - restante da divisão un+2 em un+1

e já que para números de Fibonacci r=un
então
 gcd(un+2,un+1)= gcd(un+1,un)


Na próxima tarefa, você precisa calcular a proporção áurea ,  frac sqrt5+12 aproximadamente1.618 . [Essa é a proporção de um cartão postal que permanece semelhante ao cortar um quadrado cujo lado é o lado menor do cartão postal.]

53 Para uma sequência de números de Fibonacci an tarefas 43 encontrar o limite do relacionamento  fracan+1an enquanto se esforça n até o infinito:

 fracan+1an=2, frac32, frac53, frac85, frac138, frac2113, frac3421.



Considere os segmentos que representam as diferenças de dois membros adjacentes da série  fracan+1an .

Mesmo os membros da série  fracan+1an representam uma sequência crescente xn

 frac32, frac85, frac2113,...,



Membros de linha ímpares  fracan+1an representam uma sequência decrescente yn

2, frac53, frac138,...,



Pelo lema do intervalo incorporado (Curso de cálculo diferencial e integral, 38)

c= limxn= limyn


Para a nossa linha em um ponto c igualdade justa  fracan+2an+1= fracan+1an

Dividindo an+2=an+1+an em an+1 nós obtemos a equação  fracan+2an+1=1+ fracanan+1 .
Substituindo  fracan+2an+1=x, fracanan+1= frac1x obtemos a equação quadrática x=1+ frac1x .

Se no programa geogebra conectamos os pontos 2 e  frac32 ,  frac32 e  frac53 ,  frac53 e  frac85 etc. - obter uma figura auto-semelhante

Para comparação




Em geral, existe um algoritmo padrão para calcular números de Fibonacci em Python.
Este algoritmo está disponível no Python.org
 def fib(n): a, b = 0, 1 while a < n: print(a) a, b = b, a+b fib(100) 

Você pode verificar o link
Altere esse algoritmo para que ele imprima uma aproximação à proporção áurea. Para dois números adjacentes aeb, dividiremos a soma 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) 

Você pode verificar o link

Aqui estão algumas tarefas do tutorial do SICP relacionadas à proporção áurea.
As tarefas
Exercício 1.13.
Prove que Fib (n) é o número inteiro mais próximo de  varphin/ sqrt5 onde  varphi=(1+ sqrt5)/2 .

Exercício 1.35.
Mostre que a proporção áurea  varphi (seção 1.2.2) é um ponto fixo de transformação x a1+1/x e use esse fato para calcular  varphi usando o procedimento de ponto fixo.

Exercício 1.37.
... Defina o procedimento cont-frac para que o cálculo (cont-frac ndk) forneça o valor k fração contínua finita suplementar. Teste seu procedimento calculando aproximações de 1 / φ com
 (cont-frac (lambda (i) 1.0) (lambda (i) 1.0) k) 

para valores sequenciais k .


O exemplo a seguir do livro de tarefas "Tarefas para crianças de 5 a 15 anos"
54 Calcular fração contínua infinita

1+ frac12+ frac11+ frac12+ frac11+ frac12+...



UPD Considere a equação

 alpha=1+ frac12+ frac1 alpha


De acordo com os Teoremas 236 e 235 do livro "Teoria dos Números":

 alpha= fracP1 alpha+P0Q1 alpha+Q0


Nós compomos uma tabela de valores Pn e Qn às n=0,1:

12
P13
Q12


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

e desde  alpha>0, então

 alpha= frac1+ sqrt32


Considere o problema do livro “Atrás das páginas de um livro de matemática” [10-11]
4) Mostrar esse número  sqrt1+ sqrt1+ sqrt1+... igual ao número  varphi definindo a proporção áurea.

Considere a opção xn= sqrtc+ sqrtc+...+ sqrtc
Curso de cálculo diferencial e integral, 35 (2)
Desta maneira xn+1 obtido de xn de acordo com a fórmula

xn+1= sqrtc+xn


... Pelo teorema principal, opções xn tem algum limite finito a . Para determiná-lo, passamos ao limite na igualdade

x2n+1=c+xn;


Ficamos de tal maneira que a satisfaz a equação quadrática

a2=c+a


Esta equação tem as raízes de diferentes sinais; mas o limite que nos interessa a não pode ser negativo; portanto, é igual exatamente à raiz positiva:

a= frac sqrt4c+1+12



A partir do qual podemos concluir que a "proporção áurea" é uma solução para a equação a2=c+a
às c=1 .


Além disso, no Curso de Cálculo Diferencial e Integral, 35 (3), um algoritmo para calcular o número inverso é considerado
Vamos c É qualquer número positivo e coloca xn=cyn . A relação de recursão escrita acima será substituída por:

yn+1=yn(2cyn)


Tomando o valor inicial y0 sob a condição: 0<y0< frac1c nós entendemos isso yn monotonamente crescente, tenderá a  frac1c . De acordo com esse esquema, em máquinas de contagem, o número inverso é calculado c .


Algoritmo de cálculo de número inverso c em Python:
( Ideone.com e codepad.org )
 def reciprocal(c,y0,n): arr=[] for i in range(n): arr.append(y0) y0=y0*(2-c*y0) return arr 

A função recíproca recebe um número como entrada c valor inicial y0 , número de iterações n e retorna uma matriz de "aproximações" para o número  frac1c .
y0=0,1 às c<10
y0=0,01 às 10<c<100
y0=0,001 às 100<c<1000
etc.
Exemplos de como a função recíproca funciona com vários 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,3333333333333333337]

 >>> 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]

Interpretação geométrica


Vamos tentar usar o método tangente para aproximar o número inverso.
Tangentes y=f(x0)(xx0)+f(x0) para funcionar gráfico y= frac1x são expressos pela fórmula y= frac2x0 fracxx20

Substituindo Números US $ 1,2,3,4, ... US $ em vez de x0 obtemos as equações das tangentes

y=2x


y=1 fracx4


y= frac23 fracx9


y= frac12 fracx16


Crie esses gráficos


Se você mover a hipérbole para baixo para  alpha , então ele cruza o eixo da abcissa no ponto  frac1 alpha .
A equação tangente é convertida em y= frac2x0 fracxx20 alpha
Além disso, igualando a equação da tangente a zero e expressando x nós obtemos a equação x=x0 fracf(x0)f(x0)

Em vez disso f(x0) substituto  frac1x0 alpha
Em vez disso f(x0) substituto  frac1x20

Temos a expressão x=x0+( frac1x0 alpha)x20
Expandindo os suportes, obtemos x=x0+x0 alphax20

Substituto 0,1 na equação x=x0(2 alphax0) e veja quais valores serão "executados" x às  alpha=2 nós temos US $ 0,1, 0,18, 0,29, 0,42, 0,49, 0,5 $

Substituindo esses valores na equação y= frac2x0 fracxx202 nós somos diretos

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





Extração de raiz quadrada


Voltando às expressões irracionais, consideramos um método iterativo de extrair a raiz quadrada.
Escreveremos um algoritmo usando o método iterativo de 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 da raiz quadrada usando frações continuadas usadas por Rafael Bombelli

Para encontrar o valor  sqrtn , primeiro, definimos toda a sua aproximação:  sqrtn=a pmr onde 0<r<1 . Então n=(a pmr)2=a2 pm2ar+r2 . A partir daqui, é fácil deduzir que r= frac|na2|2a pmr . Substituindo a expressão resultante na fórmula  sqrtn=a pmr , obtemos uma expansão contínua da fração:

a pm frac|na2|2a pm frac|na2|2a pm frac|na2|2a pm cdots




Então, podemos escrever o algoritmo de extração de raiz quadrada usando decomposição em uma fração contínua
 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

Em geral, números reais e complexos, bem como funções de uma ou mais variáveis, podem ser numeradores e denominadores privados.
O método de extrair a parte inteira permite representar um número irracional na forma de uma fração contínua infinita com unidades nos numeradores (numeradores freqüentes iguais à unidade).
Aqui está um exemplo de uma expansão fracionária contínua de um número  sqrt5 do livro "Álgebra"

 sqrt52= frac( sqrt52)( sqrt5+2) sqrt5+2= frac1 sqrt5+2



Desta maneira  sqrt5=2+ frac1 sqrt5+2

Selecione a parte inteira do número  sqrt5+2:E( sqrt5+2)=4 . Meios  sqrt5+2 pode ser representado como 4+ alpha . Está claro que  alpha= sqrt5+24= sqrt52 portanto  sqrt5+2=4+ sqrt5+2 . Mais uma vez, destruímos a irracionalidade no numerador do segundo termo:

 sqrt52= frac1 sqrt5+2


O resultado é:

 sqrt5=2+ frac14+ frac1 sqrt5+2


Vamos fazer outra etapa semelhante:

 sqrt5=2+ frac14+ frac14+ frac1 sqrt5+2


É fácil ver que o processo de isolamento de toda a peça e a formação de uma fração contínua neste exemplo não tem fim. Em cada novo denominador aparecerá 4 e termo  sqrt52 . Portanto, é claro que  sqrt5 é representado como uma fração contínua infinita:

 sqrt5=[2,4,4,4,...]




Hipótese


Se d in mathbbN, sqrtd notin mathbbN então a fração continuada do número  sqrtd+[ sqrtd] puramente periódico.
Galois evarista provou essa hipótese.

I.e. se à parte não periódica da fração [1;2,2,2,...]= sqrt2 adicione a parte inteira [ sqrt2]=1 então temos uma fração 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,...]

Computação em nuvem WolframAlpfa
WolframAlpfa calcula frações continuadas usando a operação de fração contínua
Calcular o valor  sqrt3
o link
Calcular o valor  sqrt3+1
o link

Se na decomposição radicular de acordo com o método Bombelli

\ sqrt {n} = a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ { 2} |} {2a \ pm \ cdots}}}}}}}}


adicionar ao primeiro termo a , obtemos uma fração puramente periódica

\ sqrt {n} + a = 2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm {\ frac {| na ^ {2} |} {2a \ pm \ cdots}}}}}}}}



Resta trazer a fração para uma forma mais familiar (com unidades no numerador).
Divida o numerador e o denominador da fração por |na2| nós obtemos a expressão

\ 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}}}}}}}


Desta maneira

 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,...]


Escreveremos um programa que calcula a aproximação de fração contínua [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
Na quarta etapa, obtemos 6 frac38186305 que é igual 6,60555114... enquanto  sqrt13+3 aprox.6,60555127 .




PS Resolva o problema (“Problemas para crianças de 5 a 15 anos”)
27 Prove que o restante da divisão de um número 2p1 prime ímpar
p é igual a 1
(exemplos: 22=3a+1,24=5b+1,26=7c+1,2101=1023=10 cdot93) .
Esse problema é considerado no artigo Amazing Adventures of Continued Fractions da revista Quantum.

Livros:
"Tarefas de crianças de 5 para 15 anos" V. I. Arnold.
“O curso do cálculo diferencial e integral” G. M. Fichtenholtz
"Teoria dos números" A. A. Buchstab
"Atrás das páginas de um livro de matemática" 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
“A estrutura e interpretação dos programas de computador” Harold Abelson, Gerald Sassman

Veja também
O artigo "Em uma tarefa que não é mais oferecida na entrevista".
Publique no blog do Spice IT Recruitment a publicação de tarefas de entrevista para várias empresas.
Tarefas para entrevistas no Yandex.
Neste vídeo, A. Savvateev resolve problemas com entrevistas na Tesla.

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


All Articles