Parte IParte IIParte IIIConsidere 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 inftyO 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
frac2n−14n+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 spoilerDa 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+1e já que para números de Fibonacci
r=unentã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
yn2, 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+1anDividindo
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
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
linkAltere 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
linkAqui estão algumas tarefas do tutorial do
SICP relacionadas à
proporção áurea.
As tarefasExercí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:para que
alpha= frac3 alpha+12 alpha+1,2 alpha2−2 alpha−1=0e 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+...+ sqrtcCurso 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(2−cyn)
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<10y0=0,01 às
10<c<100y0=0,001 às
100<c<1000etc.
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)(x−x0)+f(x0) para funcionar gráfico
y= frac1x são expressos pela fórmula
y= frac2x0− fracxx20Substituindo Números

em vez de
x0 obtemos as equações das tangentes
y=2−x
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− alphaAlé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− alphaEm vez disso
f′(x0) substituto
− frac1x20Temos a expressão
x=x0+( frac1x0− alpha)x20Expandindo os suportes, obtemos
x=x0+x0− alphax20Substituto
0,1 na equação
x=x0(2− alphax0) e veja quais valores serão "executados"
x às
alpha=2 nós temos

Substituindo esses valores na equação
y= frac2x0− fracxx20−2 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 Heronxn+1= frac12(xn+ fracaxn)
def square_root(a,n):
codepad.orgCálculo da raiz quadrada usando frações continuadas usadas por
Rafael BombelliPara 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|n−a2|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):
codepad.orgEm 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"
sqrt5−2= frac( sqrt5−2)( 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+2−4= sqrt5−2 portanto sqrt5+2=4+ sqrt5+2 . Mais uma vez, destruímos a irracionalidade no numerador do segundo termo:
sqrt5−2= 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 sqrt5−2 . 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 WolframAlpfaWolframAlpfa calcula frações continuadas usando a operação de fração contínua
Calcular o valor
sqrt3o linkCalcular o valor
sqrt3+1o 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
|n−a2| 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.orgNa 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
2p−1 prime ímpar
p é igual a
1(exemplos:
22=3a+1,24=5b+1,26=7c+1,210−1=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.