Mostrando postagens com marcador programação. Mostrar todas as postagens
Mostrando postagens com marcador programação. Mostrar todas as postagens

segunda-feira, 10 de junho de 2024

Contando faces de calendários cubos usando Python

Comprei um calendário baseado em 2 cubos para os números e paralelepípedos para os meses, conforme a foto ao lado. Bem prático, bonitinho, bem feito. Comprei este em Parnaíba-PI a um preço muito mais vantajoso do que aqueles vendidos na Tok&Stok (outro lugar em que encontramos esse tipo de calendário. Do nada tive a curiosidade de descobrir qual seria a face que mais seria utilizada em um ano não bissexto e que claro o usuário tivesse o cuidado cotidiano de sempre mudar as faces. 

Pensei que fazendo em Python seria relativamente simples. Mas apanhei muito para uma tarefa bem simples, acho que por isso não tenho muito futuro como programador. Decidido o projeto, escolhi fazer no Google Colab e usar estruturas dicionário do Python para contar as ocorrências. Ou seja decisões ruins sucessivas. Abandonei as estruturas dicionário pois o comportamento e funções para usá-las não foram bem assimiladas. Então optei por usar vetores bidimensionais. Uma dimensão guardaria o nome da face, e a outra acumularia as ocorrências. 

Lembrando que são 2 cubos. O cubo 1 contém os números 0, 1, 2, 3, 4, 5 e o cubo 2 contém os números 0, 1, 2, 6 (que também ser para o dígito 9), 7 e 8. Então declarei dois vetores bidimensionais e 3 funções. Uma para contar os meses de 31 dias, uma para contar os meses de 30 dias e uma outra para contar o fevereiro. Essas três invocam uma função contadora que recebe um valor referente a cada dia específico e incrementa as faces com compõem o número. Os valores são acumulados e ao final tem o quantitativo. 

Ideia pronto então ora de por a mão na massa, digitei o código e não consegui depurar adequadamente no Colab, precisava acompanhar os valores das variáveis para confirmar se estava fazendo certo e mesmo importando o pacote ipdb a experiência não foi boa. Abandonei então o Colab, baixei o VSCode e seus componentes e finalmente pude rodar e depurar o programa que entregou o resultado correto.

Com o resultado em mãos percebi que tinha deficiências para apresentar o resultado, a saída do print é bem simples, servindo mais para saber o resultado estava correto, daí comecei a pesquisa se havia uma forma mais elaborada de apresentar o resultado seja via uma imagem seja via integração HTML. Para esta última tem a opção do PyScript e/ou Flask, mas eu vou levar muito tempo para fazer isso.

Então para não ficar no básico, vamos apelar para boa e sólida matplotlib e fazer o gráfico das frequências de cada face. Só importar a biblioteca no VSCode, instalar e fazer as chamadas e voilà !


Mas eis a saída do print:


A face campeã é o "1" do cubo 1 e se o ano for bissexto há um empate entre o 1 e 2 do cubo 1.

Porém o resultado não é definitivo pois se pode forçar que uma determinada face seja mais utilizada nos dias em os dígitos 0, 1 e 2 são utilizados, pois ambos os cubos possuem esses dígitos. O código disponibilizado não contabiliza essa possibilidade.

O código está disponível no GitHub.

quarta-feira, 27 de abril de 2016

Fatores econômicos como causa de um ambiente político instável - Gerador Automático


          Assim mesmo, o acompanhamento das preferências de consumo causa impacto indireto na reavaliação dos procedimentos normalmente adotados. Desta maneira, a hegemonia do ambiente político estende o alcance e a importância do retorno esperado a longo prazo. Do mesmo modo, a crescente influência da mídia assume importantes posições no estabelecimento dos métodos utilizados na avaliação de resultados. Percebemos, cada vez mais, que a percepção das dificuldades exige a precisão e a definição dos níveis de motivação departamental. Ainda assim, existem dúvidas a respeito de como a consolidação das estruturas auxilia a preparação e a composição das formas de ação. 

          Não obstante, a adoção de políticas descentralizadoras promove a alavancagem dos paradigmas corporativos. Pensando mais a longo prazo, a contínua expansão de nossa atividade afeta positivamente a correta previsão dos conhecimentos estratégicos para atingir a excelência. O empenho em analisar a necessidade de renovação processual nos obriga à análise das regras de conduta normativas. 

          A certificação de metodologias que nos auxiliam a lidar com a execução dos pontos do programa cumpre um papel essencial na formulação dos relacionamentos verticais entre as hierarquias. No entanto, não podemos esquecer que o julgamento imparcial das eventualidades não pode mais se dissociar do sistema de formação de quadros que corresponde às necessidades. A nível organizacional, o consenso sobre a necessidade de qualificação garante a contribuição de um grupo importante na determinação das novas proposições. As experiências acumuladas demonstram que o surgimento do comércio virtual apresenta tendências no sentido de aprovar a manutenção das direções preferenciais no sentido do progresso. 

---------------------------------------------------------------------------------------

Você gostou do texto acima ? Entendeu ? Não ? Na verdade o texto foi gerado pelo Fabuloso Gerador de Lero Lero, de autoria do Padre Levedo (alcunha do autor). Nos testes que fiz o Fabuloso Gerador de Lero Lero perde para o Fabuloso Gerador de Lero Lero Filosófico. Este último é muito mais convincente em suas produções. Tanto um quanto o outro estão disponíveis em licença "creative commons" e os códigos fontes estão disponíveis para entender como é feita a produção do texto. Indo um pouco adiante descobri que há outros geradores automáticos:

Abaixo um exemplo de um artigo gerado pelo Fabuloso Gerador de Lero Lero Filósofico:

          Numa série de artigos publicados entre 1843 e 1844, M.Hess sustenta que a infinita diversidade da realidade única tem como componentes elementos indiscerníveis da velha terra grega fraturada. Por outro lado, a complexidade dos estudos efetuados cumpre um papel essencial na formulação da fundamentação metafísica das representações. Assim mesmo, a estrutura atual da ideação semântica exige a precisão e a definição do sistema de conhecimento geral. No entanto, não podemos esquecer que o desenvolvimento da consciência coletiva virtualizada consistiria primeiramente na autoridade das posturas dos filósofos divergentes com relação às atribuições conceituais. 

          Do mesmo modo, a indeterminação contínua de distintas formas de fenômeno garante a contribuição de um grupo importante na determinação das novas teorias propostas. Segundo a tese da eliminabilidade, o Cristianismo entendido como degradação, na perspectiva universal do polêmico anticristo nietzscheano, não assume importantes posições no estabelecimento da sensibilia dos não-sentidos. Nunca é demais lembrar o peso e o significado destes problemas, uma vez que o conceito de diáthesis e os princípios fundamentais de rhytmos e arrythmiston não causa impacto indireto na reavaliação do sistema de formação de quadros que corresponde às necessidades lógico-estruturais. Se a própria desterritorialização relativa se projeta sobre o início da atividade geral de formação de conceitos demonstra a irrefutabilidade das vantagens dos paradigmas filosóficos. A proposta de Quine para este impasse se restringe a questionar o desafiador cenário globalizado não oferece uma interessante oportunidade para verificação dos relacionamentos verticais entre as hierarquias conceituais. 

          Se estivesse vivo, Foucault diria que o Übermensch de Nietzsche, ou seja, o Super-Homem, tem que apresentar uma homogenidade em relação aos extremos do processo de comunicação como um todo. Pretendo demonstrar que a expansão dos mercados mundiais pode nos levar a considerar a reestruturação de alternativas às soluções ortodoxas. Neste sentido, existem duas tendências que coexistem de modo heterogêneo, revelando a hegemonia do ambiente político representa uma abertura para a melhoria das relações entre o conteúdo proposicional e o figurado. Segundo Heidegger, o sujeito constituinte envolvido não afeta positivamente a correta previsão das convicções empiristas. 

          É lícito um filósofo restringir suas investigações ao mundo fenomênico, mas o aumento do diálogo entre os diferentes setores filosóficos talvez venha a ressaltar a relatividade de universos de Contemplação, espelhados na arte minimalista e no expressionismo abstrato, absconditum. Se, para Sócrates, o homem não era mais que sua alma, podemos sustentar que a crescente influência da mídia prepara-nos para enfrentar situações atípicas decorrentes de todos os recursos funcionais envolvidos.