por Roberto Teixeira em agosto 7, 2010
Este não teve nem graça…
Saindo do canto superior esquerdo de um grid de 2 por 2, existem 6 rotas (sem voltar) para o canto inferior direito.

Quantas rotas existem em um grid de 20 por 20?
Seu primeiro instinto vai ser gerar todas as rotas, mas em um grid de 20 por 20 vão existir BILHÕES de rotas e você provavelmente ia usar recursividade. Esquece.
Mas se você tem um background de matemática de Ciência da Computação, você vai lembrar disso (ler The Art of Computer Programming, Vol. 4 ajuda também). No fim, é um problema de combinatória e se assumirmos w como a largura e h como a altura do grid, simplesmente precisamos calcular,

e é isso. Eu nem sequer escrevi um problema, usando o shell interativo do Python. Mas para ter código em todos os posts, aqui vai um “programinha” para calcular todos os caminhos em um grid de 20 por 20.
1
2
3
| import math
w = h = 20
print math.factorial(w + h) / (math.factorial(w) * math.factorial(h)) |
É isso.
por Roberto Teixeira em agosto 3, 2010
Esses dias de noite eu estava meio entediado e resolvi fazer algo para passar o tempo. Eu conheci o Projeto Euler há um tempo, mas nunca tinha feito nada além do problema #1. O tédio é um grande motivador e eu acabei fazendo os problemas de Nº2 ao Nº9 e decidi publicar minhas soluções em busca de outras melhores. Sinta-se convidado a comentar com soluções melhores.
O enunciado do problema Nº 3 do Projeto Euler é:
Os fatores primos de 13195 são 5, 7, 13 e 29.
Qual é o maior fator primo do número 600851475143 ?
Minha solução é usar força bruta.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| #!/usr/bin/python
import math
top_number = 600851475143
def is_divisor(divisor):
return top_number % divisor == 0
def is_prime(divided):
divisor = 3
sqrt_divided = math.sqrt(divided)
if divided == 1:
return true
while divisor <= sqrt_divided:
if divided == divisor:
return True
elif divided % divisor == 0:
return False
else:
divisor += 2
return True
def main():
count = 3
go_to = top_number
first_list =[]
while count <= go_to:
if is_divisor(count):
first_list.append(count)
go_to = top_number / count
first_list.append(go_to)
count += 2
second_list = map(is_prime, first_list)
print "%s" % max(zip(second_list, first_list))[-1]
if __name__ == "__main__":
main() |
Feio, mas funciona.
por Roberto Teixeira em julho 12, 2010
De um post interessante:
Por outro lado, existe um outro tipo de gente, que por mais que eu tente pensar agora numa maneira bonita de falar, se resume em: gente sem noção. São as pessoas que por não ter responsabilidade por si, ou por algum motivo outro qualquer que não sei explicar, conseguem ter uma grande liberdade de ação, correm riscos e muitas vezes, quando se dão mal, tem o suporte de alguém responsável pra agüentar o tranco. E pior que, na maioria das vezes, sempre ganham ajuda.
Conheço gente assim. Eu mesmo já precisei aguentar o tranco de outros. O pior é que na verdade não se está ajudando, mas sim fortalecendo a crença de que sempre haverá alguém para ajudar. É ainda muito pior quando gente assim tem filhos, pois a gente acaba sentindo-se um pouco culpado, já que obviamente não é culpa da criança. Mas infelizmente todo mundo tem seus problemas e não é possível ajudar todo mundo.
Eu confesso que algumas vezes, passa em minha cabeça querer ser um pouco assim, digamos, “aventureiro”; ou eventualmente querer fazer só as coisas que me dão na cabeça. É aquele espírito impetuoso e livre do adolescente; mas a realidade é que se algo der errado, eu estarei sozinho.
Grifo meu. Este sentimento de “se der errado, estou sozinho” é bem mais forte quando a gente tem filhos. Eu morro de medo de um dia não poder dar algo que minha filha precise.
por Roberto Teixeira em julho 8, 2010
Recebi um spam por email agora há pouco e, embora racionalmente eu o ache natural, ainda me parece estranho.

Ainda me pergunto qual o futuro do MySQL.
por Roberto Teixeira em julho 6, 2010
Com frequencia, empresas de tecnologia são fundadas por técnicos. Infelizmente, nós, técnicos, tendemos a ser bastante limitados em nossa visão de mundo, o que torna necessária a eventual “profissionalização” da empresa, ou seja, passa-se o controle a novos líderes não-técnicos. Contrata-se um diretor de vendas, um presidente, etc.
O grande problema é quando, exatamente por saber que têm limitações, os técnicos-fundadores acabam com uma espécie de complexo de inferioridade. Acreditam que todos os seus instintos devem estar errados e é melhor acreditar cegamente na visão dos tais líderes profissionais, que são percebidos quase como gurus.
Foi o caso em uma empresa em que trabalhei. Os gurus não-técnicos gozavam de uma aura de infalibilidade diante dos diretores técnicos. Este status acabou sendo incorporado à cultura da empresa. As equipes técnicas frequentemente não tinham voz mesmo em questões puramente técnicas. A administração acreditava que os vendedores e os gerentes de projeto eram os únicos capazes de tomar qualquer tipo de decisão.
Como gerente da área de desenvolvimento corporativo, eu tinha frequentemente decisões revertidas por um vendedor ou GP. Era frustrante, especialmente quando as decisões mostravam-se erradas e a culpa — sintoma de empresa pequena — caia ilogicamente na área técnica.
O mais frustrante era ver como certas decisões pareciam ser tomadas literalmente para contrariar a área técnica.
Por exemplo, eu tinha de mandar um técnico para Uberlândia, MG, para fazer a migração de um servidor. Decidimos propor usar um feriadão que estava por vir, de forma a impactar menos os serviços do cliente. O GP rechaçou o plano dizendo que era impossível trabalhar dentro do cliente em um feriado. Insisti, argumentando que era o melhor a fazer. Ele me disse que a decisão não cabia a nós, mas era entre ele e o cliente e decidiu que deveríamos fazer no dia anterior ao feriado.
No mesmo dia, algumas horas mais tarde, ele liga dizendo que o cliente achou que o trabalho impactaria seus serviços e pediu se seria possível fazer o serviço no feriado.
Fiquei tão irritado que resolvi mudar também o discurso, dizendo que minha equipe não trabalhava em feriados. Isso acabou gerando um certo stress, pois ele foi reclamar com a direção, mas eu mantive o pé.
Mas às vezes, as decisões arbitrárias jogavam em nosso favor. Certo dia, o GP de Brasília disse que o cliente exigia a presença minha e do André (gerente da equipe que cuidava de projetos de infra) no dia seguinte para Brasília. Foi algo vindo do nada e não havia justificativa, mas o GP disse que deveríamos parar de reclamar e que não havia escolha. Fomos.
Chegamos no cliente (Exército Brasileiro) no dia seguinte e descobrimos que eles não trabalhavam naquela dia (o exército não trabalha todos os dias da semana de forma a cortar custos). Eu e o André voltamos ao escritório da empresa em Brasília. Antes de entrar, porém, compramos um sorvete cada um. Chegamos, pegamos o Nextel e nos sentamos no gramado em frente à empresa. Ligamos para nosso diretor e contamos o causo. Ele chamou o gerente de projetos. Ficamos ali, em um maravilhoso dia de sol, tomando nossos sorvetes enquando nosso diretor “conversava” com o gerente de projetos em nossa frente.
Foi o melhor dia que já passei em Brasília, no qual finalmente pude conhecer os pontos turísticos da capital. Terminamos nosso dia subindo na Torre de TV, no meio do Eixo Monumental.
por Roberto Teixeira em julho 5, 2010
Vez ou outra todos temos de fazer coisas que não estão especificadas em nossa descrição de emprego. Lá por 2005 e 2006 eu me vi levando vários colegas estrangeiros para o hospital. Talvez houvesse algo de errado comigo. O ponto é que neste período alguns colegas ficaram doentes ao visitar o país.
Com exceção de uma vez em que estávamos em Brasília, eu sempre levei todos ao Hospital Israelita Albert Einstein. É um dos melhores hospitais do país, ficava próximo ao trabalho e, o que me ajudava bastante, a equipe lá normalmente fala inglês.
Menos, claro, quando eu mais precisei.
Eis que uma amiga indiana descobriu no Brasil que estava grávida. Foi uma grande surpresa, pois ela não esperava. Os sinais começaram logo que ela chegou ao país: enjoos. No início não parecia nada, mas com o passar dos dias, ela foi ficando preocupada, pois tinha a impressão de que ficavam piores. Já havia brincado com ela dizendo que devia ser gravidez, mas ela disse que não acreditava e eventualmente me pediu para levá-la ao hospital.
Na triagem do Einstein, a enfermeira já deu a dica: “você acha que poderia estar grávida?” Minha colega disse que achava que não. Fomos a um médico que, de forma não característica, não falava nada de inglês e me pediu para servir de interprete. Ele informou que lhe pediria para fazer um exame de gravidez.
Quando a enfermeira nos atendeu, nos disse que não falava nada de inglês também. Mais uma vez tive de ser o interprete. Estava tudo muito bem, até que ela entregou à minha colega uma embalagem com alguns objetos dentro e me informou que iria me informar o procedimento para que eu repassasse para minha colega. Era importante ser bem específico, pois o procedimento tinha de ser bem feito antes do exame de gravidez propriamente dito.
O procedimento? Higiene genital.
por Roberto Teixeira em julho 2, 2010
Coincidências são interessantes. Quem me conhece sabe que estou fazendo um MBA, o que parece ser algo negativo para alguns. E como que para confirmar certas coisas, estou neste momento em uma aula de estratégia empresarial.
O professor explicou o significado de sinergia com a seguinte fórmula:

E aí estamos, com mais uma conta de padeiro.
Quando eu trabalhava na maior empresa de serviços Linux da América Latina, eu acabei conhecendo uma pessoa interessante: o Diretor Comercial. Seu nome dele era Assis e ele era uma pessoa altamente citável.
Assis tinha verdadeiro desprezo por técnicos e lutava bravamente para nos prejudicar sempre que pudesse. E antes que alguém ache que é paranóia, tenha-se em mente que Assis dizia isto abertamente. Ele acreditava quq os técnicos eram o que seguravam a empresa para trás.
Uma vez ele explicou a um colega o que ele achava de técnicos.
Técnico é que nem um gás. Preenche todos os espaços. Se você dá um pouco de liberdade a um técnico, ele vai usá-la até o limite. Se você der um prazo, ele vai usar o prazo inteiro. Tem que controlar o gás. Comprimi-lo. Por isso eu pego as estimações técnicas e divido para colocar datas de entregas.
O Assis tinha também um ditado característico. Quando ele precisava calcular algo, ele sempre usava o termo “conta de padeiro” para magicamente chegar ao número desejado. Por exemplo:
São 2+2? Conta de padeiro… dá uns 5!. Tá aí!
Ele sempre conseguia chegar ao número desejado. Em uma época, eu era responsável por avaliação técnica de projetos de desenvolvimento. Um projeto chegou para mim. Ele envolvia seis meses, com quatro programadores alocados em tempo integral no Rio de Janeiro (a empresa ficava em Curitiba). O valor do contrato: R$ 24.000.
Eu pensei e vi que a conta não batia. O valor do contrato não dava nem para começar a pagar o custo do projeto. Eu fui até o Assis e apontei isso, ao que ele me respondeu:
Você é técnico. Você só tem que dizer se é possível fazer tecnicamente. Técnico, resuma-se a sua esferinha de atuação.
O projeto em questão foi em frente e iria tornar-se eventualmente o maior pesadelo da empresa, gerando processos, demissões e prejuízos. Mas ao menos nunca mais interfiri na esferinha do comercial.
por Roberto Teixeira em julho 1, 2010
Eu não consigo achar muitas explicações plausíveis para uma escolha tão ruim para candidato a vice de Serra. Um vereador chamado Índio e ainda por cima carioca?
Quiçá Serra tenha percebido que não tem chances de ganhar e decidiu esforçar-se para perder no primeiro turno para encurtar o sofrimento. Melhor seria ter a coragem de desistir da candidatura de uma vez.
Não sei a razão, mas o fato é que Serra dificulta muito a vida de quem quer defender sua candidatura. Ficou complicado.
Sobrou apenas a Dilma de candidata viável na eleição. Este é o nível da política brasileira.
por Roberto Teixeira em junho 22, 2010
Já deixei claro o que penso de futebol como esporte, mas o Dunga conseguiu me dar uma razão para torcer pela seleção. Este pega dele com a Rede Globo é a melhor coisa que eu já vi desde que aquela anta do Brizola fez Cid Moreira ler um comunicado ao vivo no Jornal Nacional.
Eu me pergunto se Dunga, como gaúcho, teve o mesmo tipo de educação que eu. Já havia comentado com amigos que nos meus tempos de colégio, eu tive martelada na cabeça a idéia de que a Rede Globo era uma má influência. Era assunto recorrente nas aulas de religião, geografia e história.
Ver o Dunga atacar a Globo é algo que me deixa muito feliz. Óbvio que a Globo agora aguarda ansiosamente por uma derrota do Brasil, para assim poder atacar o Dunga com todo o seu poder. Por isso torço agora para o Brasil. Em tempo, acho que Dunga vai cair mesmo se vencer a Copa, mas até lá, espero me divertir :)
VAI DUNGA! CALA A BOCA, GALVÃO!
|