Download de Wallpapers de Fotos do Espaço

Este script faz downloads em lote de papeis de parede (wallpapers) de imagens do espaço tiradas pelo telescópio Hubble. Site: http://hubblesite.org/ Aberto a melhorias.

Por: Perfil removido


Função "Partição de Inteiros" Recursiva COM Tabela Estática em C

De quantos modos diferentes pode-se escrever 6 como soma de números maiores que zero? 6 = 5+1 = 4+2 = 3+3 = 4+1+1 = 3+2+1 = 2+2+2 = 3+1+1+1 = 2+2+1+1 = 2+1+1+1+1 = 1+1+1+1+1+1 11 modos diferentes. p(6) = 11. O cálculo do número de partições de um inteiro usa uma recursão bem mais demorada que a dos números de Fibonacci ou a fatorial. Este exemplo usa variáveis estáticas dentro da implementação da função. Quando um valor é calculado, ele simplesmente é armazenado para consulta futura, já que este cálculo recursivo solicita valores já calculados em sua recursão. Poderia ser citado por alguém o uso a função realloc(), mas preferi deste modo para observar o funcionamento do código. A tabela dos valores anotados é expandida quando há a necessidade de serem armazenados mais valores que a sua capacidade naquele instante da execução. O tempo de demora é absurdamente inferior ao que seria se não fosse usada essa tabela. Há uma condição na função que se verificada destrói a tabela, usada para desalocar o espaço ao fim da execução. Pode-se testar a destruição da tabela antes de uma chamada da função em main() para ser verificada a eficácia. Parte dos resultados pode ser conferida neste link: http://oeis.org/A000041

Por: Perfil removido


Algoritmo de Fatoração de Fermat (FFA) em Ruby

FFA: Fermat Factoring Algorithm (Algoritmo de Fatoração de Fermat) Método de fatoração inventado por Pierre de Fermat: Todo numero pode ser escrito como diferença de dois números elevados ao quadrado: n = a² - b², ou n = a*a - b*b; Esta expressão pode ser escrita como n = (a+b) * (a-b), ou n = (a+b) (a-b), onde a soma e a subtração dos valores "a" e "b" são dois fatores do número em questão. Se n é primo, então a-b = 1 e a+b=n; Para números com diversos fatores e divisores existem diversos "a" e "b" que satisfazem a expressão. Este algoritmo testa em progressão diversos valores "b" em "i + j*j", ou i + j², com i=n no primeiro passo. Se i + j*j for um quadrado perfeito, então calcula-se com base nisto os correspondentes a e b da expressão anterior, tendo-se então encontrado um fator. Fator este que não é necessariamente um número primo. Este programa trabalha com os fatores sendo escritos em uma lista, sendo pegos um a um até o final. A função de fatoração retorna uma estrutura com um par de números que se multiplicados retornam o valor de entrada, ordenados em maior e menor. No retorno, a parcela menor substitui a posição do elemento pego anteriormente e a parcela maior é inserida ao fim da lista principal. Quando o valor menor do par é um, o valor maior é um número primo, então continua-se com o próximo elemento da lista principal, encerrando-se ao último elemento. Por último, a lista de fatores é ordenada para apresentação. Obs[1]: Por enquanto não fatora números negativos. Obs[2]: É possível ainda um teste que reduz o número de repetições do while da sub-rotina.

Por: Perfil removido


Função "Partição de Inteiros" Recursiva SEM Tabela Estática em C

De quantos modos diferentes pode-se escrever 6 como soma de números maiores que zero? 6 = 5+1 = 4+2 = 3+3 = 4+1+1 = 3+2+1 = 2+2+2 = 3+1+1+1 = 2+2+1+1 = 2+1+1+1+1 = 1+1+1+1+1+1 11 modos diferentes. p(6) = 11. O cálculo do número de partições de um inteiro usa uma recursão bem mais demorada que a dos números de Fibonacci ou a fatorial. Este exemplo usa a recursão pura e simples sem armazenar os valores já calculados, necessitando de um novo cálculo a cada chamada. Isto porque pelo método de recursão, ela pode ter a necessidade de calcular valores anteriormente calculados. Quanto maior o valor requerido, maior o tempo. Quem não tiver saco de esperar a eternidade de cálculo para os valores deste código, sugiro modificar para um tempo que não seja tão cansativa a demora. Parte dos resultados pode ser conferida neste link: http://oeis.org/A000041

Por: Perfil removido


Loop de Várias Váriáveis Em Um Único Laço "For" em C

Das vezes que costumei usar sempre deu certo. :-) Apenas um truque para não ter que escrever três, quatro laços "for" aninhados. Pode ser modificado para uso com array criando-se instantaneamente múltiplas variáveis no loop. Aqui no caso trata-se apenas de um contador com alguma coisa que chama a atenção para o hexadecimal. Possivelmente improvisa-se algo com sequências em binário.

Por: Perfil removido






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts