Tag: Algoritmos

Pilhas, Filas, Heaps e Contêineres Associativos: o Estado que Sobrevive à Pergunta Seguinte

Uma estrutura de dados é um acordo entre as atualizações e as perguntas. Este artigo abre o capítulo das estruturas com as que guardam candidatos, ordem ou hash. No MSVC,...

Treino T05: Intervalos com Orçamento

Cada problema deste treino pergunta algo sobre um trecho de um vetor, e nenhum deles pode pagar o preço de ler o trecho inteiro. Às vezes a resposta é prometer...

Hash de Prefixo, Seleção em Três Partes e o Algoritmo de Mo

Duas cadeias de 1024 letras, diferentes, têm o mesmo hash módulo 2^64 para qualquer base ímpar, e sortear a base não muda nada. Este artigo fecha o capítulo dos arrays...

Bits como Conjuntos: Máscaras, popcount e Bitsets de Muitas Palavras

Um inteiro de 64 bits é um conjunto de até 64 elementos, e uma instrução do processador faz a interseção de todos eles de uma vez. Este artigo usa bits...

Janelas que Deslizam: Deque Monotônico, Dois Ponteiros, Kadane e Sparse Table

Uma janela que anda uma posição perde um elemento e ganha outro, e quem recalcula a janela inteira paga k vezes mais do que precisa. Este artigo mantém o estado...

Somas de Prefixo e Arrays de Diferenças: Integrar e Derivar em Tempo Constante

Somar um intervalo de cem mil posições custa cem mil somas, a menos que alguém tenha somado antes. Prefixos respondem a qualquer soma de intervalo com uma subtração, diferenças aplicam...

Treino T04: Comprar Informação

Cada problema deste treino pergunta, de um jeito ou de outro, onde fica uma fronteira. Às vezes é a primeira pedra depois de um peregrino, às vezes é o menor...

Ordenar sem Comparar: Contagem, Radix e a Escolha da Ferramenta

Quando as chaves são inteiros de um universo pequeno, ordenar não exige comparar. No MSVC, a contagem ordenou dez milhões de inteiros entre 0 e 255 em 11 ms, contra...

Ordenar por Comparação: o Limite, a Biblioteca e a Seleção

Nenhum algoritmo que só compara elementos ordena um milhão de números com menos de 18,5 milhões de comparações. O std::sort do MSVC fez 31 milhões e levou 61 ms. Uma...

Busca Binária: Comprar Informação pela Metade

Cada comparação de uma busca binária compra um bit de informação e descarta metade da incerteza. Vinte comparações bastam para um milhão de elementos. No MSVC, porém, a mesma busca...

Treino T03: Alimentando a Máquina

Vários problemas deste treino são aritmeticamente triviais de propósito. Quando a conta é silenciosa, o custo de mover bytes, a semântica da conversão de texto e a posse dos caracteres...

Treino T02: Pagar Uma Vez, Perguntar Sempre

Pagar um pré-processamento uma vez para responder muitas perguntas depressa é a primeira grande troca da série. Este treino cobra essa troca em sete problemas e, depois deles, aplica a...

Treino T01: Contando Antes de Codificar

Saber um algoritmo e entregar um programa correto com o relógio correndo são habilidades diferentes. O primeiro treino da série cobra a segunda, com sete problemas cujos enunciados não dizem...

A Máquina por Baixo do Algoritmo: Tipos, Cache e Desvios

A notação Big O conta operações e trata todas como iguais. O processador discorda. Vamos abrir a máquina e medir o preço de escolher o tipo errado, de percorrer a...

Contar Antes de Programar: Complexidade, Restrições e Medição

Um programa correto que estoura o limite de tempo recebe o mesmo veredito de um programa errado. A série começa aprendendo a contar o trabalho antes de escrever a primeira...

Quando a Reta Real Desaparece - Uma Hipótese Contável

E se a reta dos números reais for apenas uma ilusão? Exploramos a hipótese de uma hierarquia matemática contável.

Fused Multiply-Add A Instrução que Dobra sua CPU

Descubra como a instrução Fused Multiply-Add (FMA) funciona nos bastidores para acelerar a computação numérica e melhorar o arredondamento em sua CPU.

Heaps na Standard Template Library do C++23

Explore as funcionalidades de heap no C++23 e otimize suas estruturas de dados de árvore binária.

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

Usando a logica para somar números naturais

Entenda a construção formal dos números naturais usando a teoria de conjuntos ZFC e os axiomas de Peano.

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

Em Busca da Diagonalização de Cantor

Explore os artigos seminais de Georg Cantor e descubra a verdadeira origem da técnica matemática da diagonalização.

A Origem da Verdade

Viaje no tempo até a antiga Babilônia e descubra a origem do valor da verdade através da primeira reclamação comercial da história.

Tag: Lógica

A Biblioteca Impossível: do Paradoxo de Russell ao Cálculo Lambda Tipado

Uma biblioteca, um catálogo impossível e a hierarquia de tipos que Russell inventou para salvá-la. Depois, a mesma história contada com funções, de Church a Curry-Howard.

Tag: paradigmas de programação

A Biblioteca Impossível: do Paradoxo de Russell ao Cálculo Lambda Tipado

Uma biblioteca, um catálogo impossível e a hierarquia de tipos que Russell inventou para salvá-la. Depois, a mesma história contada com funções, de Church a Curry-Howard.

Tag: Programação Funcional

A Falha do Cloudflare e o Haskell

Análise técnica do incidente da Cloudflare: entenda como uma mudança de permissões causou uma falha catastrófica em sistemas de alta performance.

Teoria das Categorias e Monads em Haskell

Aprenda como a matemática abstrata e a Teoria das Categorias explicam os Monads na linguagem de programação funcional Haskell.

Praticando Cálculo Lambda: Exercícios e Soluções

Inicie seu treinamento prático em Cálculo Lambda com nossa seleção de exercícios resolvidos.

Praticando Cálculo Lambda: Exercícios e Soluções 2

Mais exercícios práticos para você testar seus conhecimentos em Cálculo Lambda e operações funcionais avançadas.

A Biblioteca Impossível: do Paradoxo de Russell ao Cálculo Lambda Tipado

Uma biblioteca, um catálogo impossível e a hierarquia de tipos que Russell inventou para salvá-la. Depois, a mesma história contada com funções, de Church a Curry-Howard.

Tag: resolução de problemas

A Biblioteca Impossível: do Paradoxo de Russell ao Cálculo Lambda Tipado

Uma biblioteca, um catálogo impossível e a hierarquia de tipos que Russell inventou para salvá-la. Depois, a mesma história contada com funções, de Church a Curry-Howard.

Tag: Bertrand Russell

A Biblioteca Impossível: do Paradoxo de Russell ao Cálculo Lambda Tipado

Uma biblioteca, um catálogo impossível e a hierarquia de tipos que Russell inventou para salvá-la. Depois, a mesma história contada com funções, de Church a Curry-Howard.

Tag: Algorithms

A Little Introduction to Recursion

Recursion is the art of solving a problem by assuming you already solved a smaller one. We trace it from induction to the call stack, expose why naive Fibonacci is...

Tag: Recursion

A Little Introduction to Recursion

Recursion is the art of solving a problem by assuming you already solved a smaller one. We trace it from induction to the call stack, expose why naive Fibonacci is...

Tag: Dynamic Programming

A Little Introduction to Recursion

Recursion is the art of solving a problem by assuming you already solved a smaller one. We trace it from induction to the call stack, expose why naive Fibonacci is...

Tag: C++

SimCLR: Aprender por Contraste e Pagar pelos Negativos

SimCLR troca o decoder por uma disputa geométrica: duas versões da mesma imagem devem se encontrar; todas as outras no lote tentam separá-las.

MAE: Mascarar 75% da Imagem e Reconstruir o que Falta

O MAE leva o mascaramento da linguagem para imagens, mas explora uma assimetria decisiva: o encoder pesado nunca processa os patches ocultos.

DINO: Autodestilação e Objetos que Emergem da Atenção

DINO troca a regressão vetorial do BYOL por distribuições aguçadas e centralizadas. A combinação aprende sem negativos e faz objetos aparecerem nos mapas de atenção.

Difusão Latente: Comprimir Antes de Gerar

A difusão latente não remove ruído de pixels. Primeiro comprime a imagem, depois aprende a gerar dentro do espaço que o autoencoder decidiu preservar.

BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso

O BYOL retira todos os negativos do SimCLR e pede que uma rede rápida alcance um alvo lento. A perda é curta; explicar por que a solução não colapsa exige...

Autoencoders: o Gargalo, a Reconstrução e o Latente

Uma rede com milhões de parâmetros não merece aplausos por descobrir que x é igual a x. O autoencoder só começa a aprender quando copiar deixa de ser a saída...

BERT: O Encoder que Lê dos Dois Lados

BERT não prevê a próxima palavra. Ele esconde partes do texto, consulta os dois lados e transforma cada posição em uma representação contextual pronta para ser adaptada.

Masked Language Modeling: Esconder Tokens para Aprender Contexto

Esconder uma palavra parece uma brincadeira escolar. No BERT, essa brincadeira cria bilhões de exemplos sem rótulos e força cada token a prestar contas ao contexto dos dois lados.

Multigraphs: Parallel Edges and Distinct Paths

Two vertices may be joined by several roads, flights, or transactions. We preserve those edge identities, count paths correctly, derive algorithms, and solve 65 exercises.

Graph Neural Networks: An Introduction

Relational data does not fit neatly into tables or sequences. We derive message passing from permutation symmetry, calculate a GCN layer by hand, implement it in C++23, and solve 65...

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Fused Multiply-Add A Instrução que Dobra sua CPU

Descubra como a instrução Fused Multiply-Add (FMA) funciona nos bastidores para acelerar a computação numérica e melhorar o arredondamento em sua CPU.

Heaps na Standard Template Library do C++23

Explore as funcionalidades de heap no C++23 e otimize suas estruturas de dados de árvore binária.

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

A Little Introduction to Recursion

Recursion is the art of solving a problem by assuming you already solved a smaller one. We trace it from induction to the call stack, expose why naive Fibonacci is...

Tag: Complexity

A Little Introduction to Recursion

Recursion is the art of solving a problem by assuming you already solved a smaller one. We trace it from induction to the call stack, expose why naive Fibonacci is...

Tag: Machine Learning

Graph Neural Networks: An Introduction

Relational data does not fit neatly into tables or sequences. We derive message passing from permutation symmetry, calculate a GCN layer by hand, implement it in C++23, and solve 65...

Prever, não gerar: o template JEPA e o problema do colapso

O JEPA se recusa a reconstruir pixels: prevê representações e joga fora parte do detalhe. Este artigo constrói o template JEPA e enfrenta o colapso.

O Cisma e a Batalha da Eficiência

Descubra como a arquitetura original dos Transformers se dividiu e originou famílias de modelos distintos focados em decodificação e codificação.

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

Word2Vec, a Ponte para o Contexto

Do TF-IDF ao contexto profundo: descubra os mecanismos e o funcionamento do Word2Vec no processamento de linguagem natural.

SkipGram e Otimizações do Word2Vec

Aprenda como o SkipGram prevê o contexto e como Negative Sampling e Hierarchical Softmax tornam o Word2Vec computacionalmente viável.

Embeddings Distribuídos e CBoW

Entenda a hipótese distribucional e acompanhe, passo a passo, a matemática e a implementação do CBoW.

Redes Neurais Artificiais para Word Embedding

Compreenda as bases das Redes Neurais Artificiais e seu papel essencial na geração de Word Embeddings modernos.

Você Pensa Como Fala

A língua que você fala molda a forma como você pensa? Descubra o que a hipótese de Sapir-Whorf e a ciência cognitiva têm a dizer sobre isso.

MDP: Casos Reais - Manutenção de Turbinas Eólicas

Veja como a matemática dos MDPs é aplicada na vida real para otimizar a manutenção e reduzir custos em turbinas eólicas industriais.

Do Código à Geração

Aprofunde-se na arquitetura original dos Transformers: auto-atenção multi-cabeça, codificadores e decodificadores lado a lado.

Prestando Atenção

Entenda o mecanismo que mudou o jogo em NLP: o conceito de atenção nas redes neurais e como ele superou as limitações dos modelos de Markov.

Desvendando a Modelagem de Sequências

Como capturar o significado semântico além da contagem de palavras? Entenda as nuances da modelagem de sequências em NLP.

Resolvendo o Grid World Com MDP

Aprenda a encontrar a política ótima em um Processo de Decisão de Markov (MDP) usando algoritmos de Programação Dinâmica no Grid World.

A Vetorização Básica

Como os computadores entendem palavras? Aprenda sobre as técnicas fundamentais de vetorização de textos e modelos Bag of Words.

A Temida Matemática

Enfrente a matemática dos Transformers de frente e descubra como funciona a arquitetura que revolucionou o NLP.

Um Mundo Inteiro em uma Grade

Descubra por que o problema clássico do Grid World é o ambiente perfeito para dar os primeiros passos em Reinforcement Learning.

Entendendo Markov Decision Process

Aprenda a matemática por trás dos Processos de Decisão de Markov (MDP), a base estrutural para a Aprendizagem por Reforço.

Reinforcement Learning: História

Explore as origens históricas da Aprendizagem por Reforço (RL) e como a psicologia e a matemática se uniram para criar sistemas inteligentes.

Tag: Aprendizado por Reforço

MDP: Casos Reais - Manutenção de Turbinas Eólicas

Veja como a matemática dos MDPs é aplicada na vida real para otimizar a manutenção e reduzir custos em turbinas eólicas industriais.

Resolvendo o Grid World Com MDP

Aprenda a encontrar a política ótima em um Processo de Decisão de Markov (MDP) usando algoritmos de Programação Dinâmica no Grid World.

Um Mundo Inteiro em uma Grade

Descubra por que o problema clássico do Grid World é o ambiente perfeito para dar os primeiros passos em Reinforcement Learning.

Entendendo Markov Decision Process

Aprenda a matemática por trás dos Processos de Decisão de Markov (MDP), a base estrutural para a Aprendizagem por Reforço.

Reinforcement Learning: História

Explore as origens históricas da Aprendizagem por Reforço (RL) e como a psicologia e a matemática se uniram para criar sistemas inteligentes.

Tag: Processamento de Linguagem Natural

O Cisma e a Batalha da Eficiência

Descubra como a arquitetura original dos Transformers se dividiu e originou famílias de modelos distintos focados em decodificação e codificação.

Word2Vec, a Ponte para o Contexto

Do TF-IDF ao contexto profundo: descubra os mecanismos e o funcionamento do Word2Vec no processamento de linguagem natural.

SkipGram e Otimizações do Word2Vec

Aprenda como o SkipGram prevê o contexto e como Negative Sampling e Hierarchical Softmax tornam o Word2Vec computacionalmente viável.

Embeddings Distribuídos e CBoW

Entenda a hipótese distribucional e acompanhe, passo a passo, a matemática e a implementação do CBoW.

Redes Neurais Artificiais para Word Embedding

Compreenda as bases das Redes Neurais Artificiais e seu papel essencial na geração de Word Embeddings modernos.

Você Pensa Como Fala

A língua que você fala molda a forma como você pensa? Descubra o que a hipótese de Sapir-Whorf e a ciência cognitiva têm a dizer sobre isso.

Do Código à Geração

Aprofunde-se na arquitetura original dos Transformers: auto-atenção multi-cabeça, codificadores e decodificadores lado a lado.

Prestando Atenção

Entenda o mecanismo que mudou o jogo em NLP: o conceito de atenção nas redes neurais e como ele superou as limitações dos modelos de Markov.

Desvendando a Modelagem de Sequências

Como capturar o significado semântico além da contagem de palavras? Entenda as nuances da modelagem de sequências em NLP.

A Vetorização Básica

Como os computadores entendem palavras? Aprenda sobre as técnicas fundamentais de vetorização de textos e modelos Bag of Words.

A Temida Matemática

Enfrente a matemática dos Transformers de frente e descubra como funciona a arquitetura que revolucionou o NLP.

Tag: GEMM

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

Tag: SIMD

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

Tag: GPU

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

Tag: Tensor Cores

GEMM o Coração Matemático

Multiplicar matrizes rapidamente não é apenas reduzir FLOPs: é reutilizar dados antes que eles atravessem novamente a hierarquia de memória.

Tag: GNN

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

Tag: Grafos

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

Tag: GCN

Redes Neurais em Grafos: uma Introdução

Dados relacionais não cabem em tabelas nem em sequências. As GNNs aprendem sobre a estrutura da conexão. Deduzimos a GCN elemento a elemento e implementamos em C++.

Tag: Arquitetura de Sistemas

O Processo Czochralski, como se puxa um cristal quase perfeito

Descubra como um erro simples levou à invenção do Processo Czochralski, essencial na fabricação de semicondutores modernos.

Robótica para Iniciantes - Do Microcontrolador ao Controle de Motores

Tudo o que você precisa saber para começar do zero em robótica: microcontroladores, controle de motores, mecânica e eletrônica básica.

Fused Multiply-Add A Instrução que Dobra sua CPU

Descubra como a instrução Fused Multiply-Add (FMA) funciona nos bastidores para acelerar a computação numérica e melhorar o arredondamento em sua CPU.

Análise da Tecnologia das GPUs NVIDIA

Aprofunde-se nos detalhes técnicos das GPUs da NVIDIA com esta análise abrangente do mercado e arquitetura de processadores de IA.

A Falha do Cloudflare e o Haskell

Análise técnica do incidente da Cloudflare: entenda como uma mudança de permissões causou uma falha catastrófica em sistemas de alta performance.

A Nvidia e a Fábrica de IA

Os data centers estão se transformando em verdadeiras fábricas industriais de Inteligência Artificial. Entenda esse fenômeno e o papel da NVIDIA.

Tag: Hardware e Semicondutores

O Processo Czochralski, como se puxa um cristal quase perfeito

Descubra como um erro simples levou à invenção do Processo Czochralski, essencial na fabricação de semicondutores modernos.

Robótica para Iniciantes - Do Microcontrolador ao Controle de Motores

Tudo o que você precisa saber para começar do zero em robótica: microcontroladores, controle de motores, mecânica e eletrônica básica.

Análise da Tecnologia das GPUs NVIDIA

Aprofunde-se nos detalhes técnicos das GPUs da NVIDIA com esta análise abrangente do mercado e arquitetura de processadores de IA.

A Nvidia e a Fábrica de IA

Os data centers estão se transformando em verdadeiras fábricas industriais de Inteligência Artificial. Entenda esse fenômeno e o papel da NVIDIA.

Tag: Teoria dos Jogos

A Régua Elástica: o ENEM, a TRI e o Mito dos Mil Pontos

A nota máxima do ENEM não é 1000. Já foi 1008,3. A explicação é uma aula de teoria da medida — e do limite do que uma métrica bem desenhada...

Educação e Teoria dos Jogos: Sumário Executivo

Um mapa direto das conclusões da série Educação e Teoria dos Jogos e dos artigos que sustentam cada diagnóstico.

Prova de Autoria: Quebrando o Equilíbrio com a Realidade Física

No mundo das IAs generativas, como provar a real autoria e competência de alunos? Analisamos a crise do sistema avaliativo tradicional.

O Mercado de Limões: O Colapso do Diploma como Sinal

O diploma universitário está perdendo seu valor? Uma análise econômica do Mercado de Limões aplicado ao ensino superior.

O Meta-Jogo Regulatório: Desenho de Mecanismos e a Mão Invisível do Estado

Entenda as dinâmicas entre as universidades, a regulação estatal e como a mão invisível do Estado molda o sistema educacional.

O jogo da imitação: o diploma vem, a competência não

A busca pelo diploma muitas vezes não garante competência. Analisamos as dinâmicas do ensino e o 'jogo da imitação' acadêmica.

A Engenharia, o Núcleo Comum e a Teoria dos Jogos

Como o núcleo comum no ensino superior molda a educação de engenharia? Uma perspectiva focada na Teoria dos Jogos.

Tag: Ensino Superior

A Régua Elástica: o ENEM, a TRI e o Mito dos Mil Pontos

A nota máxima do ENEM não é 1000. Já foi 1008,3. A explicação é uma aula de teoria da medida — e do limite do que uma métrica bem desenhada...

Educação e Teoria dos Jogos: Sumário Executivo

Um mapa direto das conclusões da série Educação e Teoria dos Jogos e dos artigos que sustentam cada diagnóstico.

Prova de Autoria: Quebrando o Equilíbrio com a Realidade Física

No mundo das IAs generativas, como provar a real autoria e competência de alunos? Analisamos a crise do sistema avaliativo tradicional.

O Mercado de Limões: O Colapso do Diploma como Sinal

O diploma universitário está perdendo seu valor? Uma análise econômica do Mercado de Limões aplicado ao ensino superior.

O Meta-Jogo Regulatório: Desenho de Mecanismos e a Mão Invisível do Estado

Entenda as dinâmicas entre as universidades, a regulação estatal e como a mão invisível do Estado molda o sistema educacional.

O jogo da imitação: o diploma vem, a competência não

A busca pelo diploma muitas vezes não garante competência. Analisamos as dinâmicas do ensino e o 'jogo da imitação' acadêmica.

A Engenharia, o Núcleo Comum e a Teoria dos Jogos

Como o núcleo comum no ensino superior molda a educação de engenharia? Uma perspectiva focada na Teoria dos Jogos.

Tag: Engenharia de Software

IA na Prática: Sumário da Série

Um percurso para usar inteligência artificial no desenvolvimento de software, começando pelos papéis das pessoas e chegando às regras e aos ambientes de trabalho dos agentes.

Programação em Par na Era da IA - O Par que Não Dorme

Quando a IA entra no par de programação, os papéis mudam. Os dados de 2023 a 2026 mostram que os ganhos dependem do contexto e das práticas de qualidade que...

Tag: Metodologias Ágeis

Programação em Par na Era da IA - O Par que Não Dorme

Quando a IA entra no par de programação, os papéis mudam. Os dados de 2023 a 2026 mostram que os ganhos dependem do contexto e das práticas de qualidade que...

Tag: Extreme Programming

Programação em Par na Era da IA - O Par que Não Dorme

Quando a IA entra no par de programação, os papéis mudam. Os dados de 2023 a 2026 mostram que os ganhos dependem do contexto e das práticas de qualidade que...

Tag: Inteligência Artificial

Anatomia da Pasta .claude

A pasta .claude é o centro de controle do Claude Code no seu projeto. Este texto reorganiza os conceitos por autoridade, contexto, execução e capacidades reutilizáveis.

Programação em Par na Era da IA - O Par que Não Dorme

Quando a IA entra no par de programação, os papéis mudam. Os dados de 2023 a 2026 mostram que os ganhos dependem do contexto e das práticas de qualidade que...

Tag: Comportamento

Engenharia do Comportamento e o Product Placement

A proibição das propagandas subliminares e a ascensão das técnicas de inserção sutil como o product placement representam a evolução da engenharia do comportamento.

Tag: Sociedade

Engenharia do Comportamento e o Product Placement

A proibição das propagandas subliminares e a ascensão das técnicas de inserção sutil como o product placement representam a evolução da engenharia do comportamento.

Tag: Publicidade

Engenharia do Comportamento e o Product Placement

A proibição das propagandas subliminares e a ascensão das técnicas de inserção sutil como o product placement representam a evolução da engenharia do comportamento.

Tag: Álgebra Geométrica

CliffordNet: Quando o Produto Escalar Não Basta

O produto escalar mede alinhamento, mas descarta estrutura orientada. A CliffordNet explora o produto geométrico para combinar coerência e variação estrutural em redes neurais.

Tag: Clifford Algebra

CliffordNet: Quando o Produto Escalar Não Basta

O produto escalar mede alinhamento, mas descarta estrutura orientada. A CliffordNet explora o produto geométrico para combinar coerência e variação estrutural em redes neurais.

Tag: Redes Neurais

CliffordNet: Quando o Produto Escalar Não Basta

O produto escalar mede alinhamento, mas descarta estrutura orientada. A CliffordNet explora o produto geométrico para combinar coerência e variação estrutural em redes neurais.

Tag: Visão Computacional

CliffordNet: Quando o Produto Escalar Não Basta

O produto escalar mede alinhamento, mas descarta estrutura orientada. A CliffordNet explora o produto geométrico para combinar coerência e variação estrutural em redes neurais.

Tag: Transformers

BERT: O Encoder que Lê dos Dois Lados

BERT não prevê a próxima palavra. Ele esconde partes do texto, consulta os dois lados e transforma cada posição em uma representação contextual pronta para ser adaptada.

Masked Language Modeling: Esconder Tokens para Aprender Contexto

Esconder uma palavra parece uma brincadeira escolar. No BERT, essa brincadeira cria bilhões de exemplos sem rótulos e força cada token a prestar contas ao contexto dos dois lados.

From Cosine to the Edge: Semantic Search in Production

The mathematics built over thirteen articles has been put to work: this blog's search now turns meaning into geometry and answers by measuring angles.

Do Cosseno à Borda: Busca Semântica em Produção

A matemática que a série construiu em treze artigos foi posta para trabalhar: a busca deste blog agora transforma significado em geometria e responde medindo ângulos.

CliffordNet: Quando o Produto Escalar Não Basta

O produto escalar mede alinhamento, mas descarta estrutura orientada. A CliffordNet explora o produto geométrico para combinar coerência e variação estrutural em redes neurais.

Tag: C Plus Plus

Pilhas, Filas, Heaps e Contêineres Associativos: o Estado que Sobrevive à Pergunta Seguinte

Uma estrutura de dados é um acordo entre as atualizações e as perguntas. Este artigo abre o capítulo das estruturas com as que guardam candidatos, ordem ou hash. No MSVC,...

Treino T05: Intervalos com Orçamento

Cada problema deste treino pergunta algo sobre um trecho de um vetor, e nenhum deles pode pagar o preço de ler o trecho inteiro. Às vezes a resposta é prometer...

Hash de Prefixo, Seleção em Três Partes e o Algoritmo de Mo

Duas cadeias de 1024 letras, diferentes, têm o mesmo hash módulo 2^64 para qualquer base ímpar, e sortear a base não muda nada. Este artigo fecha o capítulo dos arrays...

Bits como Conjuntos: Máscaras, popcount e Bitsets de Muitas Palavras

Um inteiro de 64 bits é um conjunto de até 64 elementos, e uma instrução do processador faz a interseção de todos eles de uma vez. Este artigo usa bits...

Janelas que Deslizam: Deque Monotônico, Dois Ponteiros, Kadane e Sparse Table

Uma janela que anda uma posição perde um elemento e ganha outro, e quem recalcula a janela inteira paga k vezes mais do que precisa. Este artigo mantém o estado...

Somas de Prefixo e Arrays de Diferenças: Integrar e Derivar em Tempo Constante

Somar um intervalo de cem mil posições custa cem mil somas, a menos que alguém tenha somado antes. Prefixos respondem a qualquer soma de intervalo com uma subtração, diferenças aplicam...

Treino T04: Comprar Informação

Cada problema deste treino pergunta, de um jeito ou de outro, onde fica uma fronteira. Às vezes é a primeira pedra depois de um peregrino, às vezes é o menor...

Ordenar sem Comparar: Contagem, Radix e a Escolha da Ferramenta

Quando as chaves são inteiros de um universo pequeno, ordenar não exige comparar. No MSVC, a contagem ordenou dez milhões de inteiros entre 0 e 255 em 11 ms, contra...

Ordenar por Comparação: o Limite, a Biblioteca e a Seleção

Nenhum algoritmo que só compara elementos ordena um milhão de números com menos de 18,5 milhões de comparações. O std::sort do MSVC fez 31 milhões e levou 61 ms. Uma...

Busca Binária: Comprar Informação pela Metade

Cada comparação de uma busca binária compra um bit de informação e descarta metade da incerteza. Vinte comparações bastam para um milhão de elementos. No MSVC, porém, a mesma busca...

Treino T03: Alimentando a Máquina

Vários problemas deste treino são aritmeticamente triviais de propósito. Quando a conta é silenciosa, o custo de mover bytes, a semântica da conversão de texto e a posse dos caracteres...

Entrada e Saída de Alto Desempenho

Um algoritmo O(n log n) pode perder para a leitura da própria entrada. No MSVC, ler um milhão de inteiros com std::cin custou 360 ms, e um leitor de vinte...

Treino T02: Pagar Uma Vez, Perguntar Sempre

Pagar um pré-processamento uma vez para responder muitas perguntas depressa é a primeira grande troca da série. Este treino cobra essa troca em sete problemas e, depois deles, aplica a...

Caixa de Ferramentas II: Vetores, Matrizes, Vistas e Algoritmos

Um vetor que cresce sozinho move cada elemento, em média, duas vezes no MSVC. Uma vista que filtra dez valores pode ler só sete. Uma tabela de contagem vence a...

Caixa de Ferramentas I: Tipos, Números e Trabalho em Tempo de Compilação

Toda solução tem duas vidas. Na primeira, escolhemos a ideia e provamos que ela funciona. Na segunda, digitamos a ideia em C++23 depressa e limpo o bastante para que o...

Treino T01: Contando Antes de Codificar

Saber um algoritmo e entregar um programa correto com o relógio correndo são habilidades diferentes. O primeiro treino da série cobra a segunda, com sete problemas cujos enunciados não dizem...

A Máquina por Baixo do Algoritmo: Tipos, Cache e Desvios

A notação Big O conta operações e trata todas como iguais. O processador discorda. Vamos abrir a máquina e medir o preço de escolher o tipo errado, de percorrer a...

Contar Antes de Programar: Complexidade, Restrições e Medição

Um programa correto que estoura o limite de tempo recebe o mesmo veredito de um programa errado. A série começa aprendendo a contar o trabalho antes de escrever a primeira...

High Performance, Rules that Survive Measurement

A catalog of Cpp23 rules for fast code, organized by theme and seasoned with the oldest lesson in optimization, which is to measure before believing.

Your Program Does Not Start at main

Before main(), a lot has already happened: the operating system loaded the process, the loader resolved libraries, and the runtime initialized the environment.

Alto Desempenho, Regras que Sobrevivem à Medição

Um catálogo de regras de Cpp23 para código rápido, organizado por tema e temperado com a lição mais antiga da otimização, que é medir antes de acreditar.

Seu Programa Não Começa na main

Antes da main(), muita coisa já aconteceu: o sistema operacional carregou o processo, o loader resolveu bibliotecas e a runtime inicializou o ambiente.

Tag: Sistemas Operacionais

Seu Programa Não Começa na main

Antes da main(), muita coisa já aconteceu: o sistema operacional carregou o processo, o loader resolveu bibliotecas e a runtime inicializou o ambiente.

Tag: Compiladores

Alto Desempenho, Regras que Sobrevivem à Medição

Um catálogo de regras de Cpp23 para código rápido, organizado por tema e temperado com a lição mais antiga da otimização, que é medir antes de acreditar.

Seu Programa Não Começa na main

Antes da main(), muita coisa já aconteceu: o sistema operacional carregou o processo, o loader resolveu bibliotecas e a runtime inicializou o ambiente.

Tag: Claude Code

Anatomy of the .claude Folder

The .claude folder is the control center of Claude Code in your project. This text reorganizes the concepts by authority, context, execution, and reusable capabilities.

Anatomia da Pasta .claude

A pasta .claude é o centro de controle do Claude Code no seu projeto. Este texto reorganiza os conceitos por autoridade, contexto, execução e capacidades reutilizáveis.

Tag: Ferramentas

IA na Prática: Sumário da Série

Um percurso para usar inteligência artificial no desenvolvimento de software, começando pelos papéis das pessoas e chegando às regras e aos ambientes de trabalho dos agentes.

Anatomia da Pasta .claude

A pasta .claude é o centro de controle do Claude Code no seu projeto. Este texto reorganiza os conceitos por autoridade, contexto, execução e capacidades reutilizáveis.

Tag: Produtividade

Anatomia da Pasta .claude

A pasta .claude é o centro de controle do Claude Code no seu projeto. Este texto reorganiza os conceitos por autoridade, contexto, execução e capacidades reutilizáveis.

Tag: Cultura Ocidental

A Biblioteca Minima da Cultura Ocidental

Um roteiro de leitura para quem deseja compreender as fontes literárias, filosóficas, históricas e espirituais da cultura ocidental.

Tag: Classicos

A Biblioteca Minima da Cultura Ocidental

Um roteiro de leitura para quem deseja compreender as fontes literárias, filosóficas, históricas e espirituais da cultura ocidental.

Tag: Filosofia

A Biblioteca Minima da Cultura Ocidental

Um roteiro de leitura para quem deseja compreender as fontes literárias, filosóficas, históricas e espirituais da cultura ocidental.

Tag: Literatura

A Biblioteca Minima da Cultura Ocidental

Um roteiro de leitura para quem deseja compreender as fontes literárias, filosóficas, históricas e espirituais da cultura ocidental.

Tag: Estatística

O Bruno Guimarães e a Estatística Que Ninguém Quer Entender

Bruno Guimarães perdeu o pênalti contra a Noruega. Isso torna a escolha errada? A resposta exige menos gritaria e um pouco mais de estatística.

Tag: Futebol

O Bruno Guimarães e a Estatística Que Ninguém Quer Entender

Bruno Guimarães perdeu o pênalti contra a Noruega. Isso torna a escolha errada? A resposta exige menos gritaria e um pouco mais de estatística.

Tag: Copa do Mundo

O Bruno Guimarães e a Estatística Que Ninguém Quer Entender

Bruno Guimarães perdeu o pênalti contra a Noruega. Isso torna a escolha errada? A resposta exige menos gritaria e um pouco mais de estatística.

Tag: Decisão Sob Incerteza

O Bruno Guimarães e a Estatística Que Ninguém Quer Entender

Bruno Guimarães perdeu o pênalti contra a Noruega. Isso torna a escolha errada? A resposta exige menos gritaria e um pouco mais de estatística.

Tag: Otimização

Alto Desempenho, Regras que Sobrevivem à Medição

Um catálogo de regras de Cpp23 para código rápido, organizado por tema e temperado com a lição mais antiga da otimização, que é medir antes de acreditar.

Tag: Alto Desempenho

Entrada e Saída de Alto Desempenho

Um algoritmo O(n log n) pode perder para a leitura da própria entrada. No MSVC, ler um milhão de inteiros com std::cin custou 360 ms, e um leitor de vinte...

Caixa de Ferramentas II: Vetores, Matrizes, Vistas e Algoritmos

Um vetor que cresce sozinho move cada elemento, em média, duas vezes no MSVC. Uma vista que filtra dez valores pode ler só sete. Uma tabela de contagem vence a...

Caixa de Ferramentas I: Tipos, Números e Trabalho em Tempo de Compilação

Toda solução tem duas vidas. Na primeira, escolhemos a ideia e provamos que ela funciona. Na segunda, digitamos a ideia em C++23 depressa e limpo o bastante para que o...

A Máquina por Baixo do Algoritmo: Tipos, Cache e Desvios

A notação Big O conta operações e trata todas como iguais. O processador discorda. Vamos abrir a máquina e medir o preço de escolher o tipo errado, de percorrer a...

Contar Antes de Programar: Complexidade, Restrições e Medição

Um programa correto que estoura o limite de tempo recebe o mesmo veredito de um programa errado. A série começa aprendendo a contar o trabalho antes de escrever a primeira...

Alto Desempenho, Regras que Sobrevivem à Medição

Um catálogo de regras de Cpp23 para código rápido, organizado por tema e temperado com a lição mais antiga da otimização, que é medir antes de acreditar.

Tag: Operating Systems

Your Program Does Not Start at main

Before main(), a lot has already happened: the operating system loaded the process, the loader resolved libraries, and the runtime initialized the environment.

Tag: Compilers

High Performance, Rules that Survive Measurement

A catalog of Cpp23 rules for fast code, organized by theme and seasoned with the oldest lesson in optimization, which is to measure before believing.

Your Program Does Not Start at main

Before main(), a lot has already happened: the operating system loaded the process, the loader resolved libraries, and the runtime initialized the environment.

Tag: Optimization

High Performance, Rules that Survive Measurement

A catalog of Cpp23 rules for fast code, organized by theme and seasoned with the oldest lesson in optimization, which is to measure before believing.

Tag: High Performance

High Performance, Rules that Survive Measurement

A catalog of Cpp23 rules for fast code, organized by theme and seasoned with the oldest lesson in optimization, which is to measure before believing.

Tag: Artificial Intelligence

Anatomy of the .claude Folder

The .claude folder is the control center of Claude Code in your project. This text reorganizes the concepts by authority, context, execution, and reusable capabilities.

Tag: Tools

Anatomy of the .claude Folder

The .claude folder is the control center of Claude Code in your project. This text reorganizes the concepts by authority, context, execution, and reusable capabilities.

Tag: Productivity

Anatomy of the .claude Folder

The .claude folder is the control center of Claude Code in your project. This text reorganizes the concepts by authority, context, execution, and reusable capabilities.

Tag: JEPA

Representações e Modelos de Mundo: o Mapa da Série

Antes de prever o mundo, precisamos decidir o que conta como estado. Este artigo apresenta as duas perguntas, os três arcos e as rotas de leitura da série.

Prever, não gerar: o template JEPA e o problema do colapso

O JEPA se recusa a reconstruir pixels: prevê representações e joga fora parte do detalhe. Este artigo constrói o template JEPA e enfrenta o colapso.

Tag: Diffusion

Prever, não gerar: o template JEPA e o problema do colapso

O JEPA se recusa a reconstruir pixels: prevê representações e joga fora parte do detalhe. Este artigo constrói o template JEPA e enfrenta o colapso.

Tag: Self-Supervised Learning

Representações e Modelos de Mundo: o Mapa da Série

Antes de prever o mundo, precisamos decidir o que conta como estado. Este artigo apresenta as duas perguntas, os três arcos e as rotas de leitura da série.

SimCLR: Aprender por Contraste e Pagar pelos Negativos

SimCLR troca o decoder por uma disputa geométrica: duas versões da mesma imagem devem se encontrar; todas as outras no lote tentam separá-las.

DINO: Autodestilação e Objetos que Emergem da Atenção

DINO troca a regressão vetorial do BYOL por distribuições aguçadas e centralizadas. A combinação aprende sem negativos e faz objetos aparecerem nos mapas de atenção.

BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso

O BYOL retira todos os negativos do SimCLR e pede que uma rede rápida alcance um alvo lento. A perda é curta; explicar por que a solução não colapsa exige...

Autoencoders: o Gargalo, a Reconstrução e o Latente

Uma rede com milhões de parâmetros não merece aplausos por descobrir que x é igual a x. O autoencoder só começa a aprender quando copiar deixa de ser a saída...

Masked Language Modeling: Esconder Tokens para Aprender Contexto

Esconder uma palavra parece uma brincadeira escolar. No BERT, essa brincadeira cria bilhões de exemplos sem rótulos e força cada token a prestar contas ao contexto dos dois lados.

Prever, não gerar: o template JEPA e o problema do colapso

O JEPA se recusa a reconstruir pixels: prevê representações e joga fora parte do detalhe. Este artigo constrói o template JEPA e enfrenta o colapso.

Tag: World Models

Representações e Modelos de Mundo: o Mapa da Série

Antes de prever o mundo, precisamos decidir o que conta como estado. Este artigo apresenta as duas perguntas, os três arcos e as rotas de leitura da série.

Prever, não gerar: o template JEPA e o problema do colapso

O JEPA se recusa a reconstruir pixels: prevê representações e joga fora parte do detalhe. Este artigo constrói o template JEPA e enfrenta o colapso.

Tag: Probabilidade

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Tag: Teoria da Informação

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Tag: Modelos de Linguagem

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Tag: Entropia

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Tag: Perplexidade

A Probabilidade da Linguagem

Um modelo de linguagem distribui probabilidade entre continuações; treiná-lo é cobrar, em logaritmos, o preço das probabilidades que atribuiu ao texto observado.

Tag: Embeddings

From Cosine to the Edge: Semantic Search in Production

The mathematics built over thirteen articles has been put to work: this blog's search now turns meaning into geometry and answers by measuring angles.

Do Cosseno à Borda: Busca Semântica em Produção

A matemática que a série construiu em treze artigos foi posta para trabalhar: a busca deste blog agora transforma significado em geometria e responde medindo ângulos.

Tag: Busca Semântica

Do Cosseno à Borda: Busca Semântica em Produção

A matemática que a série construiu em treze artigos foi posta para trabalhar: a busca deste blog agora transforma significado em geometria e responde medindo ângulos.

Tag: Cloudflare

From Cosine to the Edge: Semantic Search in Production

The mathematics built over thirteen articles has been put to work: this blog's search now turns meaning into geometry and answers by measuring angles.

Do Cosseno à Borda: Busca Semântica em Produção

A matemática que a série construiu em treze artigos foi posta para trabalhar: a busca deste blog agora transforma significado em geometria e responde medindo ângulos.

Tag: Recuperação de Informação

Do Cosseno à Borda: Busca Semântica em Produção

A matemática que a série construiu em treze artigos foi posta para trabalhar: a busca deste blog agora transforma significado em geometria e responde medindo ângulos.

From Cosine to the Edge: Semantic Search in Production

The mathematics built over thirteen articles has been put to work: this blog's search now turns meaning into geometry and answers by measuring angles.

Tag: Information Retrieval

From Cosine to the Edge: Semantic Search in Production

The mathematics built over thirteen articles has been put to work: this blog's search now turns meaning into geometry and answers by measuring angles.

Tag: Graph Neural Networks

Graph Neural Networks: An Introduction

Relational data does not fit neatly into tables or sequences. We derive message passing from permutation symmetry, calculate a GCN layer by hand, implement it in C++23, and solve 65...

Tag: Graph Theory

Multigraphs: Parallel Edges and Distinct Paths

Two vertices may be joined by several roads, flights, or transactions. We preserve those edge identities, count paths correctly, derive algorithms, and solve 65 exercises.

Graph Neural Networks: An Introduction

Relational data does not fit neatly into tables or sequences. We derive message passing from permutation symmetry, calculate a GCN layer by hand, implement it in C++23, and solve 65...

Tag: Multigraphs

Multigraphs: Parallel Edges and Distinct Paths

Two vertices may be joined by several roads, flights, or transactions. We preserve those edge identities, count paths correctly, derive algorithms, and solve 65 exercises.

Tag: Graph Algorithms

Multigraphs: Parallel Edges and Distinct Paths

Two vertices may be joined by several roads, flights, or transactions. We preserve those edge identities, count paths correctly, derive algorithms, and solve 65 exercises.

Tag: Alexandre o Grande

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: Alexandria

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: Babilônia

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: História

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: Impérios

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: Ensaio

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Ao mais forte. A carreira póstuma de Alexandre

Um mês antes de sua morte, o império se estendia por dois milhões de milhas quadradas. Descubra como a morte de Alexandre iniciou uma disputa épica por seus restos mortais....

Tag: Masked Language Modeling

BERT: O Encoder que Lê dos Dois Lados

BERT não prevê a próxima palavra. Ele esconde partes do texto, consulta os dois lados e transforma cada posição em uma representação contextual pronta para ser adaptada.

Masked Language Modeling: Esconder Tokens para Aprender Contexto

Esconder uma palavra parece uma brincadeira escolar. No BERT, essa brincadeira cria bilhões de exemplos sem rótulos e força cada token a prestar contas ao contexto dos dois lados.

Tag: BERT

BERT: O Encoder que Lê dos Dois Lados

BERT não prevê a próxima palavra. Ele esconde partes do texto, consulta os dois lados e transforma cada posição em uma representação contextual pronta para ser adaptada.

Masked Language Modeling: Esconder Tokens para Aprender Contexto

Esconder uma palavra parece uma brincadeira escolar. No BERT, essa brincadeira cria bilhões de exemplos sem rótulos e força cada token a prestar contas ao contexto dos dois lados.

Tag: Natural Language Processing

BERT: O Encoder que Lê dos Dois Lados

BERT não prevê a próxima palavra. Ele esconde partes do texto, consulta os dois lados e transforma cada posição em uma representação contextual pronta para ser adaptada.

Tag: Autoencoders

Difusão Latente: Comprimir Antes de Gerar

A difusão latente não remove ruído de pixels. Primeiro comprime a imagem, depois aprende a gerar dentro do espaço que o autoencoder decidiu preservar.

Autoencoders: o Gargalo, a Reconstrução e o Latente

Uma rede com milhões de parâmetros não merece aplausos por descobrir que x é igual a x. O autoencoder só começa a aprender quando copiar deixa de ser a saída...

Tag: Representation Learning

Representações e Modelos de Mundo: o Mapa da Série

Antes de prever o mundo, precisamos decidir o que conta como estado. Este artigo apresenta as duas perguntas, os três arcos e as rotas de leitura da série.

Autoencoders: o Gargalo, a Reconstrução e o Latente

Uma rede com milhões de parâmetros não merece aplausos por descobrir que x é igual a x. O autoencoder só começa a aprender quando copiar deixa de ser a saída...

Tag: PCA

Autoencoders: o Gargalo, a Reconstrução e o Latente

Uma rede com milhões de parâmetros não merece aplausos por descobrir que x é igual a x. O autoencoder só começa a aprender quando copiar deixa de ser a saída...

Tag: BYOL

BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso

O BYOL retira todos os negativos do SimCLR e pede que uma rede rápida alcance um alvo lento. A perda é curta; explicar por que a solução não colapsa exige...

Tag: Self-Distillation

DINO: Autodestilação e Objetos que Emergem da Atenção

DINO troca a regressão vetorial do BYOL por distribuições aguçadas e centralizadas. A combinação aprende sem negativos e faz objetos aparecerem nos mapas de atenção.

BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso

O BYOL retira todos os negativos do SimCLR e pede que uma rede rápida alcance um alvo lento. A perda é curta; explicar por que a solução não colapsa exige...

Tag: Exponential Moving Average

BYOL: Aprender sem Negativos sem Entregar Tudo ao Colapso

O BYOL retira todos os negativos do SimCLR e pede que uma rede rápida alcance um alvo lento. A perda é curta; explicar por que a solução não colapsa exige...

Tag: Diffusion Models

Difusão Latente: Comprimir Antes de Gerar

A difusão latente não remove ruído de pixels. Primeiro comprime a imagem, depois aprende a gerar dentro do espaço que o autoencoder decidiu preservar.

Tag: Latent Diffusion

Difusão Latente: Comprimir Antes de Gerar

A difusão latente não remove ruído de pixels. Primeiro comprime a imagem, depois aprende a gerar dentro do espaço que o autoencoder decidiu preservar.

Tag: Generative Models

Difusão Latente: Comprimir Antes de Gerar

A difusão latente não remove ruído de pixels. Primeiro comprime a imagem, depois aprende a gerar dentro do espaço que o autoencoder decidiu preservar.

Tag: DINO

DINO: Autodestilação e Objetos que Emergem da Atenção

DINO troca a regressão vetorial do BYOL por distribuições aguçadas e centralizadas. A combinação aprende sem negativos e faz objetos aparecerem nos mapas de atenção.

Tag: Vision Transformer

MAE: Mascarar 75% da Imagem e Reconstruir o que Falta

O MAE leva o mascaramento da linguagem para imagens, mas explora uma assimetria decisiva: o encoder pesado nunca processa os patches ocultos.

DINO: Autodestilação e Objetos que Emergem da Atenção

DINO troca a regressão vetorial do BYOL por distribuições aguçadas e centralizadas. A combinação aprende sem negativos e faz objetos aparecerem nos mapas de atenção.

Tag: Masked Autoencoder

MAE: Mascarar 75% da Imagem e Reconstruir o que Falta

O MAE leva o mascaramento da linguagem para imagens, mas explora uma assimetria decisiva: o encoder pesado nunca processa os patches ocultos.

Tag: MAE

MAE: Mascarar 75% da Imagem e Reconstruir o que Falta

O MAE leva o mascaramento da linguagem para imagens, mas explora uma assimetria decisiva: o encoder pesado nunca processa os patches ocultos.

Tag: Masked Modeling

MAE: Mascarar 75% da Imagem e Reconstruir o que Falta

O MAE leva o mascaramento da linguagem para imagens, mas explora uma assimetria decisiva: o encoder pesado nunca processa os patches ocultos.

Tag: SimCLR

SimCLR: Aprender por Contraste e Pagar pelos Negativos

SimCLR troca o decoder por uma disputa geométrica: duas versões da mesma imagem devem se encontrar; todas as outras no lote tentam separá-las.

Tag: Contrastive Learning

SimCLR: Aprender por Contraste e Pagar pelos Negativos

SimCLR troca o decoder por uma disputa geométrica: duas versões da mesma imagem devem se encontrar; todas as outras no lote tentam separá-las.

Tag: InfoNCE

SimCLR: Aprender por Contraste e Pagar pelos Negativos

SimCLR troca o decoder por uma disputa geométrica: duas versões da mesma imagem devem se encontrar; todas as outras no lote tentam separá-las.

Tag: Model-Based Planning

Representações e Modelos de Mundo: o Mapa da Série

Antes de prever o mundo, precisamos decidir o que conta como estado. Este artigo apresenta as duas perguntas, os três arcos e as rotas de leitura da série.

Tag: Termópilas

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Tag: Esparta

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Tag: Grécia

Das Crônicas da Sombra do Leste e da Chama do Oeste

Onde a lenda encontra a história nos portões de pedra. Descubra os eventos sombrios antes, durante e após a Batalha das Termópilas.

Tag: Redes

Resolução de Nomes: DNS na Era da Nuvem

O DNS transforma nomes em decisões distribuídas. Vamos medir o que o TTL compra, o que ele atrasa e por que pesos sobre respostas não garantem a mesma fração de...

Transporte: TCP, UDP e QUIC

TCP, UDP e QUIC oferecem contratos diferentes sobre o mesmo IP. Vamos acompanhar um fluxo da porta ao encerramento, medir janelas e perdas e decidir qual transporte serve a cada...

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Da Rede Local à Web: Dispositivos, Topologias e Serviços

Uma rede não é uma coleção de caixas com luzes. É um conjunto de fronteiras de encaminhamento, compartilhamento e falha. Vamos seguir um frame pela rede local e terminar em...

A Pilha TCP/IP e a Física da Rede

Existe uma classe de defeito que nenhum profiler de aplicação encontra, porque a aplicação não está lenta: ela está esperando. A série começa medindo o que se espera e por...

Tag: Fundamentos

A Pilha TCP/IP e a Física da Rede

Existe uma classe de defeito que nenhum profiler de aplicação encontra, porque a aplicação não está lenta: ela está esperando. A série começa medindo o que se espera e por...

Tag: Latência

A Pilha TCP/IP e a Física da Rede

Existe uma classe de defeito que nenhum profiler de aplicação encontra, porque a aplicação não está lenta: ela está esperando. A série começa medindo o que se espera e por...

Tag: TCP/IP

A Pilha TCP/IP e a Física da Rede

Existe uma classe de defeito que nenhum profiler de aplicação encontra, porque a aplicação não está lenta: ela está esperando. A série começa medindo o que se espera e por...

Tag: Ethernet

Da Rede Local à Web: Dispositivos, Topologias e Serviços

Uma rede não é uma coleção de caixas com luzes. É um conjunto de fronteiras de encaminhamento, compartilhamento e falha. Vamos seguir um frame pela rede local e terminar em...

Tag: Topologias

Da Rede Local à Web: Dispositivos, Topologias e Serviços

Uma rede não é uma coleção de caixas com luzes. É um conjunto de fronteiras de encaminhamento, compartilhamento e falha. Vamos seguir um frame pela rede local e terminar em...

Tag: Internet

Da Rede Local à Web: Dispositivos, Topologias e Serviços

Uma rede não é uma coleção de caixas com luzes. É um conjunto de fronteiras de encaminhamento, compartilhamento e falha. Vamos seguir um frame pela rede local e terminar em...

Tag: Web

Da Rede Local à Web: Dispositivos, Topologias e Serviços

Uma rede não é uma coleção de caixas com luzes. É um conjunto de fronteiras de encaminhamento, compartilhamento e falha. Vamos seguir um frame pela rede local e terminar em...

Tag: IPv4

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: IPv6

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: CIDR

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: Roteamento

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: NAT

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: NAPT

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: ICMP

Camada de Internet: IP, Endereçamento, Sub-redes e Encaminhamento

Um endereço IP não é uma máquina e uma rota não é um mapa. Vamos transformar _bits_ em prefixos, seguir uma requisição de uma rede privada até a Internet e...

Tag: TCP

Transporte: TCP, UDP e QUIC

TCP, UDP e QUIC oferecem contratos diferentes sobre o mesmo IP. Vamos acompanhar um fluxo da porta ao encerramento, medir janelas e perdas e decidir qual transporte serve a cada...

Tag: UDP

Transporte: TCP, UDP e QUIC

TCP, UDP e QUIC oferecem contratos diferentes sobre o mesmo IP. Vamos acompanhar um fluxo da porta ao encerramento, medir janelas e perdas e decidir qual transporte serve a cada...

Tag: QUIC

Transporte: TCP, UDP e QUIC

TCP, UDP e QUIC oferecem contratos diferentes sobre o mesmo IP. Vamos acompanhar um fluxo da porta ao encerramento, medir janelas e perdas e decidir qual transporte serve a cada...

Tag: Congestionamento

Transporte: TCP, UDP e QUIC

TCP, UDP e QUIC oferecem contratos diferentes sobre o mesmo IP. Vamos acompanhar um fluxo da porta ao encerramento, medir janelas e perdas e decidir qual transporte serve a cada...

Tag: git

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: github

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: github pages

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: dns

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: registro.br

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: cloudflare

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: cloudflare pages

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: sites estáticos

Do Git ao domínio próprio, publicando um site estático com GitHub Pages e Cloudflare

Vamos sair de uma pasta vazia e chegar a um site estático com domínio próprio, HTTPS, revisão por pull request e duas rotas de publicação, GitHub Pages ou Cloudflare Pages....

Tag: oauth2

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: oidc

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: pkce

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: google

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: microsoft

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: autenticação

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: pages functions

Login em um site estático com OpenID Connect, OAuth 2.0 e PKCE

Antes de escolher OAuth, vamos comparar senhas próprias, serviços gerenciados, login federado, cookies e sessões em banco. Depois construiremos o fluxo adequado a um site estático e veremos a variante...

Tag: DNS

Resolução de Nomes: DNS na Era da Nuvem

O DNS transforma nomes em decisões distribuídas. Vamos medir o que o TTL compra, o que ele atrasa e por que pesos sobre respostas não garantem a mesma fração de...

Tag: Nuvem

Resolução de Nomes: DNS na Era da Nuvem

O DNS transforma nomes em decisões distribuídas. Vamos medir o que o TTL compra, o que ele atrasa e por que pesos sobre respostas não garantem a mesma fração de...

Tag: Resiliência

Resolução de Nomes: DNS na Era da Nuvem

O DNS transforma nomes em decisões distribuídas. Vamos medir o que o TTL compra, o que ele atrasa e por que pesos sobre respostas não garantem a mesma fração de...

Tag: Evangelho de Marcos

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Parábola do Semeador

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Educação

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Comunicação

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Psicologia Cognitiva

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Cristianismo

Como o Evangelho de Marcos ensina a ensinar

Marcos 4 não apresenta apenas uma mensagem. O capítulo também nos convida a pensar nas condições necessárias para que uma mensagem seja acolhida e produza fruto.

Tag: Agentes Inteligentes

IA na Prática: Sumário da Série

Um percurso para usar inteligência artificial no desenvolvimento de software, começando pelos papéis das pessoas e chegando às regras e aos ambientes de trabalho dos agentes.

Tag: Programação Competitiva

Pilhas, Filas, Heaps e Contêineres Associativos: o Estado que Sobrevive à Pergunta Seguinte

Uma estrutura de dados é um acordo entre as atualizações e as perguntas. Este artigo abre o capítulo das estruturas com as que guardam candidatos, ordem ou hash. No MSVC,...

Treino T05: Intervalos com Orçamento

Cada problema deste treino pergunta algo sobre um trecho de um vetor, e nenhum deles pode pagar o preço de ler o trecho inteiro. Às vezes a resposta é prometer...

Hash de Prefixo, Seleção em Três Partes e o Algoritmo de Mo

Duas cadeias de 1024 letras, diferentes, têm o mesmo hash módulo 2^64 para qualquer base ímpar, e sortear a base não muda nada. Este artigo fecha o capítulo dos arrays...

Bits como Conjuntos: Máscaras, popcount e Bitsets de Muitas Palavras

Um inteiro de 64 bits é um conjunto de até 64 elementos, e uma instrução do processador faz a interseção de todos eles de uma vez. Este artigo usa bits...

Janelas que Deslizam: Deque Monotônico, Dois Ponteiros, Kadane e Sparse Table

Uma janela que anda uma posição perde um elemento e ganha outro, e quem recalcula a janela inteira paga k vezes mais do que precisa. Este artigo mantém o estado...

Somas de Prefixo e Arrays de Diferenças: Integrar e Derivar em Tempo Constante

Somar um intervalo de cem mil posições custa cem mil somas, a menos que alguém tenha somado antes. Prefixos respondem a qualquer soma de intervalo com uma subtração, diferenças aplicam...

Treino T04: Comprar Informação

Cada problema deste treino pergunta, de um jeito ou de outro, onde fica uma fronteira. Às vezes é a primeira pedra depois de um peregrino, às vezes é o menor...

Ordenar sem Comparar: Contagem, Radix e a Escolha da Ferramenta

Quando as chaves são inteiros de um universo pequeno, ordenar não exige comparar. No MSVC, a contagem ordenou dez milhões de inteiros entre 0 e 255 em 11 ms, contra...

Ordenar por Comparação: o Limite, a Biblioteca e a Seleção

Nenhum algoritmo que só compara elementos ordena um milhão de números com menos de 18,5 milhões de comparações. O std::sort do MSVC fez 31 milhões e levou 61 ms. Uma...

Busca Binária: Comprar Informação pela Metade

Cada comparação de uma busca binária compra um bit de informação e descarta metade da incerteza. Vinte comparações bastam para um milhão de elementos. No MSVC, porém, a mesma busca...

Treino T03: Alimentando a Máquina

Vários problemas deste treino são aritmeticamente triviais de propósito. Quando a conta é silenciosa, o custo de mover bytes, a semântica da conversão de texto e a posse dos caracteres...

Entrada e Saída de Alto Desempenho

Um algoritmo O(n log n) pode perder para a leitura da própria entrada. No MSVC, ler um milhão de inteiros com std::cin custou 360 ms, e um leitor de vinte...

Treino T02: Pagar Uma Vez, Perguntar Sempre

Pagar um pré-processamento uma vez para responder muitas perguntas depressa é a primeira grande troca da série. Este treino cobra essa troca em sete problemas e, depois deles, aplica a...

Caixa de Ferramentas II: Vetores, Matrizes, Vistas e Algoritmos

Um vetor que cresce sozinho move cada elemento, em média, duas vezes no MSVC. Uma vista que filtra dez valores pode ler só sete. Uma tabela de contagem vence a...

Caixa de Ferramentas I: Tipos, Números e Trabalho em Tempo de Compilação

Toda solução tem duas vidas. Na primeira, escolhemos a ideia e provamos que ela funciona. Na segunda, digitamos a ideia em C++23 depressa e limpo o bastante para que o...

Treino T01: Contando Antes de Codificar

Saber um algoritmo e entregar um programa correto com o relógio correndo são habilidades diferentes. O primeiro treino da série cobra a segunda, com sete problemas cujos enunciados não dizem...

A Máquina por Baixo do Algoritmo: Tipos, Cache e Desvios

A notação Big O conta operações e trata todas como iguais. O processador discorda. Vamos abrir a máquina e medir o preço de escolher o tipo errado, de percorrer a...

Contar Antes de Programar: Complexidade, Restrições e Medição

Um programa correto que estoura o limite de tempo recebe o mesmo veredito de um programa errado. A série começa aprendendo a contar o trabalho antes de escrever a primeira...

Tag: Complexidade

Contar Antes de Programar: Complexidade, Restrições e Medição

Um programa correto que estoura o limite de tempo recebe o mesmo veredito de um programa errado. A série começa aprendendo a contar o trabalho antes de escrever a primeira...

Tag: Cache

A Máquina por Baixo do Algoritmo: Tipos, Cache e Desvios

A notação Big O conta operações e trata todas como iguais. O processador discorda. Vamos abrir a máquina e medir o preço de escolher o tipo errado, de percorrer a...

Tag: Treino

Treino T05: Intervalos com Orçamento

Cada problema deste treino pergunta algo sobre um trecho de um vetor, e nenhum deles pode pagar o preço de ler o trecho inteiro. Às vezes a resposta é prometer...

Treino T04: Comprar Informação

Cada problema deste treino pergunta, de um jeito ou de outro, onde fica uma fronteira. Às vezes é a primeira pedra depois de um peregrino, às vezes é o menor...

Treino T03: Alimentando a Máquina

Vários problemas deste treino são aritmeticamente triviais de propósito. Quando a conta é silenciosa, o custo de mover bytes, a semântica da conversão de texto e a posse dos caracteres...

Treino T02: Pagar Uma Vez, Perguntar Sempre

Pagar um pré-processamento uma vez para responder muitas perguntas depressa é a primeira grande troca da série. Este treino cobra essa troca em sete problemas e, depois deles, aplica a...

Treino T01: Contando Antes de Codificar

Saber um algoritmo e entregar um programa correto com o relógio correndo são habilidades diferentes. O primeiro treino da série cobra a segunda, com sete problemas cujos enunciados não dizem...

Tag: constexpr

Caixa de Ferramentas I: Tipos, Números e Trabalho em Tempo de Compilação

Toda solução tem duas vidas. Na primeira, escolhemos a ideia e provamos que ela funciona. Na segunda, digitamos a ideia em C++23 depressa e limpo o bastante para que o...

Tag: Conceitos

Caixa de Ferramentas I: Tipos, Números e Trabalho em Tempo de Compilação

Toda solução tem duas vidas. Na primeira, escolhemos a ideia e provamos que ela funciona. Na segunda, digitamos a ideia em C++23 depressa e limpo o bastante para que o...

Tag: Estruturas de Dados

Pilhas, Filas, Heaps e Contêineres Associativos: o Estado que Sobrevive à Pergunta Seguinte

Uma estrutura de dados é um acordo entre as atualizações e as perguntas. Este artigo abre o capítulo das estruturas com as que guardam candidatos, ordem ou hash. No MSVC,...

Caixa de Ferramentas II: Vetores, Matrizes, Vistas e Algoritmos

Um vetor que cresce sozinho move cada elemento, em média, duas vezes no MSVC. Uma vista que filtra dez valores pode ler só sete. Uma tabela de contagem vence a...

Tag: Ranges

Caixa de Ferramentas II: Vetores, Matrizes, Vistas e Algoritmos

Um vetor que cresce sozinho move cada elemento, em média, duas vezes no MSVC. Uma vista que filtra dez valores pode ler só sete. Uma tabela de contagem vence a...

Tag: Entrada e Saída

Entrada e Saída de Alto Desempenho

Um algoritmo O(n log n) pode perder para a leitura da própria entrada. No MSVC, ler um milhão de inteiros com std::cin custou 360 ms, e um leitor de vinte...

Tag: Busca Binária

Busca Binária: Comprar Informação pela Metade

Cada comparação de uma busca binária compra um bit de informação e descarta metade da incerteza. Vinte comparações bastam para um milhão de elementos. No MSVC, porém, a mesma busca...

Tag: Ordenação

Ordenar sem Comparar: Contagem, Radix e a Escolha da Ferramenta

Quando as chaves são inteiros de um universo pequeno, ordenar não exige comparar. No MSVC, a contagem ordenou dez milhões de inteiros entre 0 e 255 em 11 ms, contra...

Ordenar por Comparação: o Limite, a Biblioteca e a Seleção

Nenhum algoritmo que só compara elementos ordena um milhão de números com menos de 18,5 milhões de comparações. O std::sort do MSVC fez 31 milhões e levou 61 ms. Uma...

Tag: Arrays

Hash de Prefixo, Seleção em Três Partes e o Algoritmo de Mo

Duas cadeias de 1024 letras, diferentes, têm o mesmo hash módulo 2^64 para qualquer base ímpar, e sortear a base não muda nada. Este artigo fecha o capítulo dos arrays...

Janelas que Deslizam: Deque Monotônico, Dois Ponteiros, Kadane e Sparse Table

Uma janela que anda uma posição perde um elemento e ganha outro, e quem recalcula a janela inteira paga k vezes mais do que precisa. Este artigo mantém o estado...

Somas de Prefixo e Arrays de Diferenças: Integrar e Derivar em Tempo Constante

Somar um intervalo de cem mil posições custa cem mil somas, a menos que alguém tenha somado antes. Prefixos respondem a qualquer soma de intervalo com uma subtração, diferenças aplicam...

Tag: Bits

Bits como Conjuntos: Máscaras, popcount e Bitsets de Muitas Palavras

Um inteiro de 64 bits é um conjunto de até 64 elementos, e uma instrução do processador faz a interseção de todos eles de uma vez. Este artigo usa bits...