Mostrando postagens com marcador algoritmos. Mostrar todas as postagens
Mostrando postagens com marcador algoritmos. Mostrar todas as postagens

Calculando numeros primos em python

Este post surge inicialmente à partir do Project Euler: Diversão com programação e matemática, calculando números primos. Guardei a notícia no google reader e hoje estive lendo o site do José Lopes de Oliveira Júnior mais especificamente neste link sobre calculo de numeros primos, no exemplo é citado o "Crivo de Eratóstenes".

Fuçando na web achei um código que quero melhorar com a ajuda dos nobres leitores e saber se ele se enquadra na definição do Crivo de Eratóstens. Segue o código:

Obs: Nos comentários do post original -->>; Dica: use o crivo de eratóstenes. Dá pra fazer a solução rodar em menos de 1 segundo.

Veja este post.

3*+1 em python

Há tempos atráz foi publicado no grupo de usuários python do Ceará um desafio que consiste no seguinte:

------------------
PROBLEMINHA
------------------
Considere que, para um determinado número inteiro n existe uma
sequencia de números a partir de n que leva ao número 1. Tal
sequencia será definida da seguinte forma:

* se n for ímpar, multiplique n por 3 e some 1 para obter o próximo número da sequencia
* caso contrário, ou seja, se n for par, divida o por 2 para obter o próximo número

Para determinar se um número é ímpar ou par utilize o operador "%".
Este operador retorna o resto da divisão, logo, se "n % 2 == 1"
significa que o número é ímpar, pois o resto da divisão por 2 foi
igual a um.

Vejamos um exemplo, para n igual a 22 teremos a seguinte sequencia:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

A princípio eu não entendi a solução final postada pelo Nicholas Amorin (vou postar no código abaixo 2 soluções).



Mas finalmente, me debruçando com um pouco mais de atenção sobre a solução do Nicholas percebi a elegância do algoritmo postado por ele
  1. Ele cria uma lista - observe o input dentro de colchetes, isso permite que ele use mais adiante o método apend da classe list.
  2. Ele cria um função lambda que trabalha com a lógica de semáforo do python, quando ele usa o and aqui: ((x % 2) and x * 3 + 1) or x / 2
    ele só executa o x*3+1 se o número for impar, pois o resultado de x%2 para um número par é zero, que para o python é falso, como falso e verdadeiro não é válido para uma cláusula "and" ele passa direto para o x/1
  3. No final ele usa de forma elegante o slicing (fatiamento) de listas com a opção -1

python - instalando o dreampie rapidinho no ubuntu karmic

O dreampie é um shell com mais firulas para o pythoh, ele tem por exemplo o auto-complemento comun às IDEs super pesadas.

sudo add-apt-repository ppa:dreampie-devel/ppa
sudo apt-get update
sudo apt-get install dreampie


Veja este screenshot:

Quantos porcos e quantas galinhas?

Um fazendeiro tem um bando de porcos e um bando de galinhas.
Ele sai para o terreiro e observa 20 cabeças e 56 pernas.
Quantos porcos e quantas galinhas que ele tem?

Observando o algoritmo você vai pareceber que ele trabalha por força bruta, tentando cada opção até chegar ao equilíbrio das igualdades.

Não deixe de ler a solução do
Mangnun Leno neste link

Obs: este conteúdo chegou aqui graças a esta aula de Ciência da computação do MIT disponível no youtube.




python - atribuição condicional


x = 3 if (y == 1) else 2


Na linux.conf.au que está rolando na Austrália, Anthony Baxter (python release manager e engenheiro de software do google austrália) confirmou o que muitos já sabiam: o uso em massa de python nas plataformas e aplicativos do google. Estima-se, segundo ele, que cerca de 15% da base de código atual do google é em python. [...]

from: http://cavedon.net/blog/category/python/

Algoritmos Genéticos em Python

Algoritmos Genéticos em Python Desenvolvimento de algorítmos de otimização
Nível da Palestra: Intermediário


linux-cookbook

Grupos do Google
Participe do grupo linux-cookbook
E-mail:
Visitar este grupo