Tag Archive: .net


Esta é uma solução em C# para o problema PRIME 1 no SPOJ que consiste em calcular todos os números primos dentro de certos intervalos (mais info. http://spoj.pl/problems/PRIME1).Resolvi com um crivo de erastótenes levemente modificado, já com primos tabelados até 31627 (menor inteiro que é >= raiz quadrada de 1.000.000.000), já pulando os números pares e checando na tabela só até a raiz de N, para cada N no intervalo passado ao programa. Ainda há uma tentativa de paralelizar a operação, mas que não surtiu efeito no SPOJ, provavelmente o sistema deles roda a aplicação em uma CPU somente. Tentei procurar o mínimo possível na net de forma a botar a cuca pra funfar, a única coisa que utilizei da internet foi o teoreminha da raiz quadrada de N. O próximo passo será tentar acelerar o cálculo utilizando testes estatísticos de primalidade, mas para isso precisarei implementar um modulozinho de matemática de precisão arbitrária, o que já é mtos outros posts 😉 Execução no SPOJ levou 2,75 segundos e 25MB de memória. (A maior parte da memória é o runtime, gordo, que usa.)

Continue lendo

Anúncios

Se você estiver programando uma aplicação que use os vários IPs disponíveis na máquina para sair, seja usando as facilidades da classe ServicePoint, ou com Socket.Bind(), ou com alguma outra biblioteca por exemplo a LibCurl, e não estiver funcionando legal, é interessante isolar se o problema é com as configurações de sua rede ou na aplicação em si.

Screenshot

Screenshot do TestadorIPs

TestadorIPs é um aplicativo para testar isto. Muito simples e com apenas 421 linhas de código, interface gráfica feita em Gtk# (testado apenas no Mono), funcionando tanto no Windows quanto no Linux, e comprovada a eficácia através do sniffer Wireshark. Para a troca do IP utilizado nas conexões de saída são utilizadas as facilidades do BindIPEndPointDelegate da classe ServicePoint, do próprio Framework; as conexões são feitas utilizando a classe WebClient e para atestar o IP utilizado para sair, utilizado o site http://www.meuip.com.br. Baixe e na pasta correspondente a seu sistema operacional, rode o executável TestadorIPs.exe. Para rodar no Windows é necessário ter instalado as bibliotecas do Gtk# 2.12 (http://ftp.novell.com/pub/mono/gtk-sharp/gtk-sharp-2.12.10.win32.msi) .

Binários e código-fonte (compilado no Mono 2.6.7, solução do MonoDevelop 2.4): http://db.tt/xBCaeSF