Números automórficos

Secção dedicada à linguagem de programação favorita dos quarkianos: Python!

Números automórficos

Mensagempor jap em Segunda Dez 01, 2008 5:43 pm

Deixo aqui o primeiro problema ou desafio para os aprendizes de Python (e para os outros também, mas é suposto a solução ser apresentada em Python!).

A ideia é deixar nesta secção alguns pequenos problemas que possam ser úteis para praticar Python - por exemplo, que possam servir para destacar alguns aspectos sintácticos da linguagem - mas que sejam simultaneamente interessantes, intrigantes e divertidos! :P


Problema:

Um número inteiro positivo n é dito automórfico se a representação decimal de n^2 terminar no número n. Por exemplo, 76 é automórfico pois 76 \times 76 = 5776. Estes números também são conhecidos por números curiosos, por possuírem várias propriedades notáveis. Existem três números automórficos de um só dígito (1, 5, 6) e apenas dois números automórficos de 2 dígitos (25, 76).
Escrevam um programa que calcule os primeiros 10 números automórficos. :wink:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Re: Números automórficos

Mensagempor hexphreak em Segunda Dez 01, 2008 6:07 pm

Não vou deixar aqui a solução para dar espaço aos nossos newbies, mas apenas deixar algumas propriedades que tornam estes números curiosos e que vos podem ajudar a tornar o programa mais eficiente. Não as vou provar, mas também não é difícil e podem divertir-se a fazê-lo, como uma pausa na programação :wink:

Para um dado número de dígitos k, existem no máximo dois números automórficos com k dígitos (à excepção do caso k=1, para o qual há três). A soma destes dois números é 10^k+1, sendo que um termina em 5 e o outro em 6. Para além disto, se assumirmos que um número cujo primeiro dígito é zero pode ser automórfico - por exemplo, 0625^2 = 390625 -, todos os números automórficos à excepção dos três primeiros resultam de adicionar um dígito ao início do número. Por exemplo, a cadeia iniciada por 5 dá-nos 5 - 25 - 625 - 0625 - 90625 - ...


P.S.: Claro que no vosso programa não contam com os números começados por 0! :P
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Re: Números automórficos

Mensagempor jap em Segunda Dez 01, 2008 6:11 pm

hexphreak Escreveu:Não vou deixar aqui a solução para dar espaço aos nossos newbies, mas apenas deixar algumas propriedades que tornam estes números curiosos e que vos podem ajudar a tornar o programa mais eficiente. Não as vou provar, mas também não é difícil e podem divertir-se a fazê-lo, como uma pausa na programação :wink:

Para um dado número de dígitos k, existem no máximo dois números automórficos com k dígitos (à excepção do caso k=1, para o qual há três). A soma destes dois números é 10^k+1, sendo que um termina em 5 e o outro em 6. Para além disto, se assumirmos que um número cujo primeiro dígito é zero pode ser automórfico - por exemplo, 0625^2 = 390625 -, todos os números automórficos à excepção dos três primeiros resultam de adicionar um dígito ao início do número. Por exemplo, a cadeia iniciada por 5 dá-nos 5 - 25 - 625 - 0625 - 90625 - ...


P.S.: Claro que no vosso programa não contam com os números começados por 0! :P


Em bem disse que estes números eram curiosos! :lol:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Re: Números automórficos

Mensagempor Ivo_Timóteo em Segunda Dez 01, 2008 6:18 pm

N---------N^2
1---------1
5---------25
6---------36
25--------625
76--------5776
376-------141376
625-------390625
9376------87909376
90625-----8212890625
109376----11963109376

Aqui estão os 10 primeiros números calculados em python. Não vou por já o código para outros pensarem :)
[1, 5, 6, 25, 76, 376, 625, 9376, 90625, 109376]
Avatar do utilizador
Ivo_Timóteo
charm-Quark!
charm-Quark!
 
Mensagens: 579
Registado: Quarta Nov 15, 2006 7:25 pm
Localização: V. N. Gaia

Re: Números automórficos

Mensagempor jap em Segunda Dez 01, 2008 7:09 pm

Isso mesmo! :wink:

Vamos então esperar que o primeiro newbie apresente o seu programa em Python! 8)
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Re: Números automórficos

Mensagempor RicardoCampos em Segunda Dez 01, 2008 8:29 pm

Pessoalmente acho que vou é provar as propriedades :P

Mas Henrique, os números podem começar com 0!.

Claro que 0! = 1 por definição.
\emph{Ricardo Campos}\in \delta \bigcap q\overline{q}
O Matemático-Físico de 2008
Avatar do utilizador
RicardoCampos
top-Quark!
top-Quark!
 
Mensagens: 1280
Registado: Sexta Jun 01, 2007 3:49 pm
Localização: Figueira da Foz/Coimbra/DMUC/DFUC, Paris... E agora Zurique!

Re: Números automórficos

Mensagempor hexphreak em Segunda Dez 01, 2008 8:41 pm

Por definição é como quem diz, pela função Peixinho :P
Avatar do utilizador
hexphreak
top-Quark!
top-Quark!
 
Mensagens: 1959
Registado: Segunda Nov 05, 2007 8:52 pm
Localização: Maia/Porto

Re: Números automórficos

Mensagempor sagardipak em Terça Dez 02, 2008 2:47 pm

RicardoCampos Escreveu:Pessoalmente acho que vou é provar as propriedades :P

Mas Henrique, os números podem começar com 0!.

Claro que 0! = 1 por definição.


Este Ricardo deve achar que tem piada... Que seca!

(Só mesmo porque eu ia fazer essa piada :P)
Nature and nature's laws lay hid in night;
God said "Let Newton be" and all was light.

IPhO 2009, México
Quark! 2007/2008, 2008/2009
Avatar do utilizador
sagardipak
strange-Quark!
strange-Quark!
 
Mensagens: 926
Registado: Sábado Out 20, 2007 9:58 pm
Localização: Bracara Augusta

Re: Números automórficos

Mensagempor Bruno Oliveira em Terça Dez 02, 2008 4:28 pm

Lol, essa teve piada, pelo menos para mim porque não me tinha lembrado disso, e claro que o Henrique também não, ele só pôs ponto de exclamação para acentuar o seu PS :lol:
e^{ix}=cos x + i\,sin x
Avatar do utilizador
Bruno Oliveira
top-Quark!
top-Quark!
 
Mensagens: 1553
Registado: Quarta Nov 14, 2007 10:19 pm
Localização: Lisboa

Re: Números automórficos

Mensagempor jap em Terça Dez 02, 2008 6:24 pm

Bruno Oliveira Escreveu:Lol, essa teve piada, pelo menos para mim porque não me tinha lembrado disso, e claro que o Henrique também não, ele só pôs ponto de exclamação para acentuar o seu PS :lol:

:lol:
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Re: Números automórficos

Mensagempor Bruno Oliveira em Sábado Dez 06, 2008 12:42 am

Já consegui finalmente(!) escrever o código para calcular os números automórficos :D , desta vez e acho por bem dizer, tive uma pequena ajuda cá em casa, mas assim que puder postarei aqui o código. :wink:

Agora é capaz de ser chato porque temos teste intermédio de matemática esta semana e mesmo sendo probabilidades(não é o que mais aprecie), não se pode facilitar, mas assim que puder vou metê-lo aqui para poderem dar algumas sugestões/críticas. :wink:
e^{ix}=cos x + i\,sin x
Avatar do utilizador
Bruno Oliveira
top-Quark!
top-Quark!
 
Mensagens: 1553
Registado: Quarta Nov 14, 2007 10:19 pm
Localização: Lisboa

Re: Números automórficos

Mensagempor RicardoCampos em Sábado Dez 06, 2008 1:07 am

Segundo eu me lembro do ano passado... Sim, pode-se facilitar. E muito.
\emph{Ricardo Campos}\in \delta \bigcap q\overline{q}
O Matemático-Físico de 2008
Avatar do utilizador
RicardoCampos
top-Quark!
top-Quark!
 
Mensagens: 1280
Registado: Sexta Jun 01, 2007 3:49 pm
Localização: Figueira da Foz/Coimbra/DMUC/DFUC, Paris... E agora Zurique!

Re: Números automórficos

Mensagempor Bruno Oliveira em Sábado Dez 06, 2008 2:57 pm

Segundo eu me lembro do ano passado... Sim, pode-se facilitar. E muito.


Pronto... :lol:

Talvez possa :XD
e^{ix}=cos x + i\,sin x
Avatar do utilizador
Bruno Oliveira
top-Quark!
top-Quark!
 
Mensagens: 1553
Registado: Quarta Nov 14, 2007 10:19 pm
Localização: Lisboa

Re: Números automórficos

Mensagempor Bruno Oliveira em Sábado Dez 06, 2008 2:58 pm

Bem, cá vai então o código :wink: :

Código: Seleccionar Todos
from math import *
for x in range(1,10000000,1):
    a= x*x
    exp=log10(x)
    i=int(exp)+1
    res=a-(int(a/(10**i))*10**i)
    if x==res:
      print res
   


Digam da vossa justiça :D
e^{ix}=cos x + i\,sin x
Avatar do utilizador
Bruno Oliveira
top-Quark!
top-Quark!
 
Mensagens: 1553
Registado: Quarta Nov 14, 2007 10:19 pm
Localização: Lisboa

Re: Números automórficos

Mensagempor jap em Sábado Dez 06, 2008 4:07 pm

Obrigado, Bruno


Pelo teu primeiro programa em Python! :hands:

É engraçado, pois o teu programa é altamente não pitónico - os pitonistas, como o Ivo, saberão porquê! - mais logo já te explico a razão deste comentário. :lol:

Nesta altura estou com acesso à rede muito limitado (sempre a cair), não estou em Coimbra, mas espero que mais logo já possa postar em condições!

Até logo,
abraço,

jap
José António Paixão
Departamento de Física da FCTUC
Avatar do utilizador
jap
Site Admin
Site Admin
 
Mensagens: 6805
Registado: Quinta Nov 09, 2006 9:34 pm
Localização: Univ. de Coimbra

Próximo

Voltar para Pitónica

Quem está ligado

Utilizadores a navegar neste fórum: Nenhum utilizador registado e 0 visitantes