Posts filed under ‘matemática’

E a Probabilidade e a Estatística, hein?

Na faculdade eu sempre olhei muito enviesado para a Probabilidade e a Estatística, mas isso devia-se, claro, à ignorância em relação ao pensamento estatístico. Como Leonard Mlodinow nos ensina no excelente “O Andar do Bêbado: como o acaso determina nossas vidas“, e eu cito: “a mente humana foi construída para identificar uma causa definida para cada acontecimento, podendo assim ter bastante dificuldade em aceitar a influência de fatores aleatórios ou não relacionados”. É isso! Temos extrema dificuldade em entender o pensamento aleatório, probabilístico e, por consequência, o estatístico. Mas, como escrito no mesmo livro (citando o economista Armen Alchian), “os processos aleatórios são fundamentais na natureza, e onipresentes em nossa vida cotidiana; e ainda assim, a maioria das pessoas, não os compreende”.

Mas, é óbvio que isso precisa mudar. Nós, Cientistas da Computação e amantes da tecnologia e da Tecnologia da Informação em geral, não somos “a maioria das pessoas”. Precisamos mudar a nossa lógica determinística, afinal, a ciência inteira (e a Computação não fica de fora) é dominada inteiramente pela Estatística e pelo pensamento estocástico.

“O desenho de nossas vidas, como a chama da vela, é continuamente conduzido em novas direções por diversos eventos aleatórios que, juntamente com nossas reações a eles, determinam nosso destino. Como resultado, a vida é ao mesmo tempo difícil de prever e difícil de interpretar” – Leonard Mlodinow em “O Andar do Bêbado: como o acaso determina nossas vidas”

Portanto, começamos esse estudo, muitas vezes com resultados contra-intuitivos. Mas temos uma ferramenta de grande valia: o computador e as linguagens de programação. Portanto, vamos começar com um experimento básico: a probabilidade da moeda lançada.

Para isso, fiz um script em Python (2.7.11) para simular o lançamento de uma moeda e, em seguida, computar as probabilidades dos lançamentos. Os resultados são interessantes. Quanto mais o número de lançamentos aumenta mais as frequências aproximam-se do número previsto (50% para cada uma das faces).

Aqui está o código:

# -*- coding: UTF-8 -*-
"""
Função:
    Exemplo de lançamento de moeda
Autor:
    Professor Ed - Data: 29/05/2016 -
Observações:  ?
"""
def gera_matriz_lancamentos(matriz, tamanho):
    import random
    matriz_faces = []
    print 'Gerando...'
    for x in range(tamanho):
        num = random.randint(1,2) #1 = cara, 2 = coroa
        matriz.append (num)

        if num==1:
            matriz_faces.append('Cara')
        else:
            matriz_faces.append('Coroa')

    print matriz_faces

def calcula_probabilidades(matriz, tamanho):
    soma_cara = 0
    soma_coroa = 0

    for i in range(len(matriz)):
        if matriz[i]==1:
            soma_cara = soma_cara+1
        elif matriz[i]==2:
            soma_coroa = soma_coroa + 1

    probabilidade_cara = float(soma_cara)/float(tamanho)*100
    probabilidade_coroa = float(soma_coroa)/float(tamanho)*100    

    print 'Foram lancadas ' + str(soma_cara) + ' caras e ' + str(soma_coroa) + ' coroas'

    probabilidades = []
    probabilidades.append(probabilidade_cara)
    probabilidades.append(probabilidade_coroa)    

    return probabilidades

matriz=[]
tamanho = int(raw_input('Digite o tamanho da matriz de lancamentos: '))
gera_matriz_lancamentos(matriz, tamanho)
#print 'Um para cara e 2 para coroa'
#print matriz
vetor_probabilidades = []
vetor_probabilidades = calcula_probabilidades(matriz, tamanho)
print 'As probabilidades sao: %f%% e %f%%' % (vetor_probabilidades[0], vetor_probabilidades[1])

Nem sempre, como os números gerados pelo computador são (pseudo)aleatórios (falaremos disto depois), as frequências são próximas a 50% (variando bastante entre as execuções do programa), mas, em geral, sempre que a quantidade de lançamentos é imensa (acima de 10.000), as probabilidades aproximam-se do limite esperado.

Lembrando, sempre, que se lançarmos uma moeda um milhão de vezes não deveríamos esperar um placar exato (50% caras e 50% coroas). A teoria das probabilidades nos fornece uma medida do tamanho da diferença (chamada de erro) que pode existir neste experimento de um processo aleatório. Se ma moeda for lançada, digamos, N vezes, haverá um distanciamento (erro) de aproximadamente 1/2 N “caras”, este erro, de fato, pode ser para um lado ou para o outro. Ou seja, espera-se que, em “moedas honestas“, o erro seja da ordem da raiz quadrada de N.

Assim, digamos que de cada 1.000.000 lançamentos de uma moeda honesta, o número de caras se encontrará, provavelmente entre 499.000 e 501.000 (já que 1.000 é a raiz quadrada de N). Para moedas viciadas, espera-se que o erro seja consistentemente maior que a raiz quadrada de N.

probabilidade-moedaUm exemplo da execução do programa com duas instâncias exatamente iguais, mas com valores gerados diferentes. (mais ou menos como acontece na realidade).

Abaixo, um exemplo de uma instância com 100.000 lançamentos provando que as frequências, de fato, aproximam-se das probabilidades previstas (inclusive se considerado o erro):

probabilidade-moeda-100mil-lancamentos

Segundo a Lei dos Grandes Números, a média aritmética dos resultados da realização da mesma experiência repetidas vezes tende a se aproximar do valor esperado à medida que mais tentativas se sucederem. E, claro, se todos os eventos tiverem igual probabilidade o valor esperado é a média aritmética. (Lembrando, claro, que o valor em si, não pode ser “esperado” no sentido geral, o que leva à uma falácia). Ou seja, quanto mais tentativas são realizadas, mais a probabilidade da média aritmética dos resultados observados se aproximam da probabilidade real.

A Probabilidade é descrita por todos, alunos, professores e estudantes, como difícil. Em minha opinião, ela dá a impressão de ser difícil porque muitas vezes, desafia nosso senso comum (que, normalmente, tende sempre à falácia do apostador, ou de Monte Carlo), ainda mais quando dispomos do conhecimento da lei dos grandes números. Estratégias como “o dobro ou nada” nadam de braçadas no inconsciente coletivo com esta falácia.

O teorema de Bayes (que é um corolário da Lei da Probabilidade Total) explica direitinho o porque da falácia do apostador ser, bem, …, uma falácia. Sendo a moeda honesta, os resultados em diferentes lançamentos são estatisticamente independentes e a probabilidade de ter cara em um único lançamento é exatamente 12.

É isso aí. Nos próximos posts vamos falar um pouco mais sobre os significados e como calcular essas probabilidades, sempre tentando um enfoque prático com a ajuda dessa ferramenta magnífica que é o computador!
Até!

P.S.: Assim que meu repositório for clonado certinho (tive uns problemas com o Git local) eu coloco o link para o programa prontinho no Github.
Pronto! Já apanhei resolvi o problema do Git e você pode baixar o arquivo-fonte clicando aqui.
P.S.1: Acabei não resistindo e fazendo o teste para 1.000.000 de lançamentos. O resultado está aqui embaixo. Confira:

probabilidade-moeda-1000000-lancamentos

Anúncios

quarta-feira, 29 junho, 2016 at 2:49 pm 2 comentários

Aula 02 de Estrutura de Dados e questões sobre a primalidade de inteiros

Já está disponível a AULA 02 de Estrutura de Dados. Para baixar, basta clicar aqui.

Lembrando que retirei o slide que continha o programa com o teste de primalidade, já que ele deverá ser enviado como trabalho até dia 26/04, quinta-feira. Após este período colocarei a aula completa, lembrando que como comentei este teste de primalidade é extremamente ineficiente.

Sobre a questão de primalidade de números inteiros, recomendadíssimo a leitura sobre o teste de primalidade AKS, conhecido como teste da primalidade Agrawal-Kayal-Saxena. E também o teste de primalidade de Fermat para geração de números não-primos ou mesmo o teste de primalidade de Miller-Rabin (que é probabilístico).

Para entender de verdade os (fascinantes) números primos, recomendo, para quem está com tempo, a leitura deste trabalho.

Um abs.

Depois volto aqui e posto sobre os números primos com questões relacionadas aos algoritmos para obtê-los e toda a mística que os envolvem.
Até mais.

(P.S. – Um pequeno desafio a meus alunos – bem fácil, diga-se – é implementar em C o algoritmo do teste de primalidade AKS e me enviar!)

terça-feira, 24 abril, 2012 at 1:18 am Deixe um comentário

A Matemática de tudo

Quando disse para um amigo meu do trabalho que iria fazer uma apresentação sobre Matemática para alunos do ensino médio ele (não sei porque) ficou intrigado. “Como pode uma apresentação de Matemática”, ele retrucou. Fiquei a madrugada preparando o material que iria fazer parte da Semana de Matemática da Escola KJK (Kairala José Kairala que, por acaso, foi onde cursei o ensino médio!). Comecei por volta das 11 horas e, felizmente, 45 minutos depois, às 11:45 TODOS os alunos e alunas ainda estavam no auditório quente (sem ar condicionado naquele dia) viajando com os devaneios e maravilhas da Matemática

Compartilho agora esta apresentação que fiz para pouco mais de 200 alunos do ensino médio do KJK na semana de #matemática de 2010: Chama-se “A matemática de tudo”.

Fui à escola à pedido do professor de filosofia Edmilson Lima que, por acaso, é meu pai (e hoje, 30/05, comemora meio século de vida \o/). A apresentação mostra o quanto estamos rodeados de matemática por todos os lados e demonstra que sem ela jamais estaríamos no atual estado tecnológico e científico que nos encontramos…

Link: http://www.slideshare.net/edkallenn/a-matemtica-de-tudo-edkallenn-lima ou então clique aqui.

“A matemática é o alfabeto pelo qual Deus criou o universo” – Galileu Galilei.

P.S. Uma pena os vídeos não puderem ser compartilhadas, mas prometo que os posto no Youtube e depois volto aqui e atualizo este post com os links. Abs.

segunda-feira, 30 maio, 2011 at 2:48 pm Deixe um comentário

O porquê da matemática!

Muitos, muitíssimos alunos dos cursos de Informática e de Tecnologia da Informação reclamam do excesso de matemática e do porquê de tanto formalismo num curso em que a ferramenta de trabalho é o computador (Meus antigos alunos viviam reclamando!). Deixando de lado a contradição latente de tal pergunta (visto que a TI é muita mais da área das Exatas que das Humanas) mostro aqui embaixo em exemplo extraído do FAQ sobre carreiras (e emprego) da Blizzard. Para os gamers esse nome dispensa apresentações, mas para quem não conhece, a Blizzard é a empresa responsável por megasucessos dos games, entre os quais destaco: World of Warcraft, Diablo III, Starcraft, Diablo II (que à época de seu lançamento, pelos idos de 2000, demoliu minha vida social), Warcraft III. Além do magnífico Rock n’ Roll Racing.

A Blizzard é famosa por seus jogos de qualidade impecável, vício latente e bastante esmero na programação dos mesmos. Pois bem, esta empresa está precisando contratar gente. Em seu website ela mostra as carreiras disponíveis. Há também um FAQ sobre carreiras. Neste FAQ, me interessou a seguinte pergunta/resposta (o grifo é totalmente meu):

O que preciso saber para ser programador da Blizzard?

A Blizzard tem várias vagas de programação. Precisamos de programadores para trabalhar na Battle.net, em jogos, em gráficos e 3D, ferramentas e outras áreas. Todas as vagas requerem conhecimentos profundos de C e C++. Quem tem um alicerce sólido nessa área pode adquirir outras habilidades. Conhecimentos de probabilidade, estatística, geometria e outras ciências matemáticas são úteis. Consulte a seção de empregos do nosso website para conhecer mais detalhes sobre as vagas de programação.

Preciso falar mais alguma coisa?
Se não acredita, é só conferir: http://us.blizzard.com/pt-br/company/careers/faq.html

C e C++ continuam vivíssimos (aqui respondo um velho questionamento de um aluno sobre porque aprender C/C++ hoje em dia). E o que está sublinhado parece ser a velha e boa ciência de Euclides e Arquimedes. Aquela que espanta os neófitos e abre um sorrisão no rosto dos que compreendem os mistérios por detrás daqueles símbolos.

Computação gráfica, algoritmos avançados e modelagem 3D ainda fazem bastante uso da rainha das ciências e este, além do conhecimento per se, é o maior motivo para se aprender “o alfabeto pelo qual Deus criou o universo” – (Galileu).

Até que trabalhar num lugar assim também não parece mau negócio:

Para mais fotos, ou informações é só conferir lá no site oficial da Blizzard (em português!)

terça-feira, 31 agosto, 2010 at 4:39 pm Deixe um comentário

Sistema de Busca apaixonante… (Wolfram Alfa)

Eu conheci hoje um sistema de busca viciante e apaixonante (sim, mais do que o Google) chamado Wolfram Alfa. Para mim, que era fãzaço do programa Mathematica, então, nem se fala. O negócio é o seguinte: o Wolfram é visto com mais um google killer, embora, depois de usar bastante o serviço eu concorde com o Tiago Dória de que eles são mais complementares do que rivais, pois a proposta é (bem) diferente.

Entre outras cositas bacanas, com o Wolfram você faz cálculos (de uma complexidade viciante), e responde a perguntas e queries objetivamente e com dados (muuuitos dados). Por exemplo, experimentei a seguinte query no sistema de busca do sistema: “R$ 5400 in dollars”. A resposta: confiram que lindeza de resposta e digam se o negócio não é apaixonante.

O lance do sistema é respostas exatas sem links para páginas onde vc encontraria o conhecimento por si só. Ele me dá a localização exta da estação espacial internacional, o desenvolvimento da série de Taylor para sen^2(x), me mostra a diferença em nível físico-químico entre a cafeína e a aspirina, interpreta notas musicais mostrando as distâncias de tons e semitons entre elas (bom, por exemplo, para transpor os tons de escalas e cifras musicais), desenvolve, por exemplo a integral indefinida de uma função, como, por exemplo: , mostra os terremotos próximos à ponte Akashi-Kaikyō no japão, mostra o clima em Boston em 1998 (e mesmo o de Rio Branco em 2002)um gráfico de crescimento das meninas nascidas em 29 de junho de 2000, informações sobre um icosaedro, dados sobre a cidade que estou morando atualmente e uma INFINADE de outras informações.

O serviço ainda está em testes e as perguntas são sempre em Inglês, mas que as possibilidades (de crescimento e de pesquisas) são fascinantes, isso são. Ah, como bem lebra o Tiago Dória, é sempre bom confrontar os dados oriundos da Internet com outras fontes, sejam elas reais ou virtuais.

Até.

quarta-feira, 27 maio, 2009 at 6:27 pm Deixe um comentário

Algoritmo de Euclides

O algoritmo de Euclides para obtenção do MDC pode ser descrito como uma série de divisões sucessivas, o que dispensa fatoração.

Continue Reading sexta-feira, 15 maio, 2009 at 4:16 pm 2 comentários

Dia nacional da Matemática

Bom, ao menos uma coisa vossas excelências, os nossos parlamentares sabem fazer bem: criar feriados e datas comemorativas.
Pois bem, hoje comemora-se (sem muito alarde, é verdade!) o DIA NACIONAL DA MATEMÁTICA. Hoje, dia do nascimento do grande carioca Julio César de Mello e Souza, mais conhecido como Malba Tahan. Sim, ele mesmo, autor de “O Homem que calculava”, brasileiríssimo como eu (embora menos miscigenado que eu, eu creio! rsrs).
Malba Tahan era um divulgador da matemática além de amante e professor da arte de Arquimedes, Leibiniz, Diofanto, Euclides, Newton , Bhaskara, Euler, Gauss, Fermat e muitos, muitos outros cérebros que contribuíram para a construção de nossa sociedade, de nossa ciência e de tudo o que nos possibilita a sociedade atual ser do jeito que ela é.
Malba Tahan foi mais do que um amante da Matemática. Ele imaginava que essa bela ciência era bem melhor ensinada e aprendida se fosse (oh! Horror dos horrores dos maus professores), vejam só, DIVERTIDA.
Ainda há muitos que acreditam nessa possibilidade. Para todos os mestres que fazem da arte de Pitágoras um divertido aprendizado e para o grande Malba Tahan, os mais sincerosos e honrosos parabéns.

quarta-feira, 6 maio, 2009 at 6:56 pm 1 comentário


Follow Computador de papel: o conteúdo da forma on WordPress.com

Feeds

direto do Twitter

O Computador de Papel

O computador de papel nada mais é do que a tentativa de "humanizar" o computador, trazê-lo para a fantasia lúdica da realidade, fazê-lo compreendido pelos milhares que o usam, mas não o entendem. Nasceu de minhas viagens intelectuais defronte da tela de fósforo um dia em que ele retrucou-me: decifra-me ou te devoro. Para não ser devorado, ousei decifrá-lo. É também onde posto minhas aulas, meus trabalhos, minhas impressões de um pouco de nada sobre coisa nenhuma. É o local onde falo das minhas paixões, entre elas, a música, o cinema, a TI e a ciência. É um espaço de discussão sobre a realidade do computador, sua influência, seus avanços, o exercício do óbvio que é mostrar a sua importância no e para o mundo. Tem o estilo de seu criador, acelerado, com um tom sempre professoral, tresloucado, por vezes verborrágico, insano, nevrálgico, sem arroubos literários, atônito e contemplativo diante da realidade, apaixonado, livre, feito para mostrar que a TI é antes de tudo, feita por gente!

Estatísticas do blog

  • 127,428 cliques e contando...

Agenda de posts

dezembro 2017
S T Q Q S S D
« maio    
 123
45678910
11121314151617
18192021222324
25262728293031