• Matéria: Matemática
  • Autor: superaks
  • Perguntado 8 anos atrás

Escreva em termos de funções elementares (ou não), em função de n onde n é um inteiro positivo a sequência a seguir.


aₙ = 12345678910111213...n


Ou seja, aₙ é formada por todos os números de 1 até n, de forma que todos eles fiquem lado a lado em ordem crescente.


_____________

Por favor responder de forma detalhada.


adjemir: Continuando..... só aplicar a recursividade a partir de n = 1, depois para n = 2, depois para n = 3, etc, etc. e finalmente para n = n. E iríamos ter, no fim, todos os números pedidos, que poderiam ser colocados como solicitado: 12345.......n . Mas não sei se essa minha proposição atenderia ao que a sua questão pede. Acho a ideia do Vinicius muito mais consentânea com o que está sendo pedido. Mas fica essa minha ideia pra você avaliar. Um abraço.
superaks: Muito obrigado Adjemir pela sua sugestão. A ideia mesmo é brincar com funções, pois isso certamente não pode ser escrito como a fórmula fechada de uma sequência em função de n. A minha ideia seria utilizar números triangulares junto com a função piso, pois o grande problema seria a quantidade de dígitos que teria n.
superaks: E usando log junto com a função piso conseguimos a quantidade de dígitos de n, para o expoente a ideia seria pensar recursivamente como você colocou. Chegaríamos na fórmula dos números triangulares
adjemir: Valeu, amigo Superaks. Então a ideia do Vinicius, como eu havia pensado antes, é mais consentânea com o que pede a questão e bem engenhosa. Um abraço, amigo.
viniciusredchil: O exercício é o seguinte: tem que ter uma função que vc joga apenas o valor de n qualquer e ele já te dá um número específico, isso chamamos de formula geral.
viniciusredchil: E por exemplo, se vc colocar o número n=2 na função, deve sair dela o valor an=12, o número "doze", e se n=3, deve sair da função o número 123 "Cento e vinte e três"
Anônimo: Essa eu tirei da cabeça. Disponha Adjemir!
superaks: Grato pela sujestão :)
adjemir: Valeu, amigos Vinicius, Manolo e Superaks. E parabéns pela fórmula geral que já dá o número inteiro começando do "1" e indo até o número colocado. Um cordial abraço a todos.
viniciusredchil: Obrigado!!

Respostas

respondido por: viniciusredchil
3
Esse exercício é muito utilizado em computação, e seu algoritmo é facilmente escrito por funções básicas em linguagens de baixo nível, como em C.

Vamos fazer esse algoritmo passo a passo.

A fórmula é geral, então tudo deve ser baseado do número n.

Façamos o seguinte.

Pegaremos um exemplo

n=4    a_n=1234

Um algoritmo para esse exemplo seria

Pega o 1, multiplica por 10^3 isso soma com 2*10^2, dai soma por 3*10^1 e soma com 4*10^0

Os numeros iniciais é a variação de k de 1 a 4 e o expoente de 10 é a variação de k de 0 a 3

Assim:

a_n=\sum_{k=1}^{n}k*10^{n-k}\ \ \ \ \ \ \ \ \ \ \ (n\ \textless \ 10)

Vamos pegar um exemplo para n maior que 10

n=13  an=12345678910111213

Primeiramente crie uma função que dê o número de algarismos de um certo número. vamos chamar de N(número), assim

Pegue o número 1 e multiplique por 10^(17-1) (Sendo 17 = N(a_n) e 1 =N(n)) Depois some com 2*10^((17-1)-1) .... Some com 10*10^(17-1)-1)-1)...)-2).

Observe que há uma recursividade do expoente.

O expoente de 10 é da forma:

N(a_n)-\sum_{L=1}^kN(L)

Sendo k o número que varia na soma original( Os números que estamos pegando na expressão original)

A formula geral utilizando N() é então:

a_n=\sum_{k=1}^{n}k*10^{N(a_n)-\sum_{L=1}^kN(L)}

Porém temos dois problemas com essa fórmula.

1. A função N() ainda não está definida em funções matemáticas.

2. Temos o termo N(a_n), que faz uma função que depende do resultado dela própria.

Mas temos soluções interessantes.

1.   Para descobrirmos o número de algarismos de um número, podemos utilizar de duas funções matemáticas: As funções log e floor (Em português; Função piso)

Vamos pegar um exemplo para melhor entender.

O número 178. Ele possui 3 algarismos e segue a seguinte relação:

100 < 178 < 1000
10^2 < 178 < 10^3

Para um número n de 5 algarismos:

10^4 ≤ n < 10^5

Para um número n de N algarismos:

10^(N-1) ≤ n < 10^N

 Aplicando log em todos os termos, temos:

log(10^(N-1)) ≤ log(n) < log(10^N)
N-1 ≤ log(n) < N

E dessa relação e sabendo que N é um número natural, temos que:

floor(log(n)) = N-1
N = floor(log(n))+1

2. Há como prever a quantidade de algarismos de a_n utilizando uma função mais simples.

Se k variar de 1 a n, é só incrementar o número de algarismos de k

Assim

 N(a_n)=\sum_{k=1}^{n}N(k)\\\\N(a_n)=\sum_{k=1}^{n}(\lfloor log(k)\rfloor+1)

Agora, finalmente, a fórmula geral de a_n, utilizando funções matemáticas definidas é:

\boxed{a_n=\sum_{k=1}^{n}k*10^{\sum_{m=1}^{n}(\lfloor log(m)\rfloor+1)-\sum_{L=1}^k(\lfloor log(L)\rfloor+1)}}

Dúvidas? Comente.
Perguntas similares