3 pontos por GN⁺ 2025-08-21 | 1 comentários | Compartilhar no WhatsApp
  • A Grade Numérica de Números Primos é uma ferramenta que mostra visualmente os padrões e a estrutura dos números primos
  • Essa grade organiza os números em um formato bidimensional, permitindo entender de relance como os primos se distribuem
  • Ao analisar os padrões, é possível obter insights sobre a regularidade ou aleatoriedade dos números primos
  • Ajuda estudantes de programação/matemática a compreender a teoria dos primos de forma intuitiva
  • Pode ser usada como material de referência para explorar a distribuição dos primos sob vários ângulos

Visão geral da Grade Numérica de Números Primos

  • Esta ferramenta organiza números em uma grade bidimensional com o objetivo de distinguir visualmente se cada célula representa ou não um número primo
  • O usuário pode definir os intervalos de linhas e colunas para gerar grades de vários tamanhos e formatos
  • Dentro da grade, os números primos são claramente destacados por cores ou marcações, permitindo ver de imediato como eles se distribuem
  • Fica mais fácil explorar padrões como distribuições regulares, diagonais e agrupamentos, o que contribui para a intuição matemática
  • A ferramenta oferece uma fonte de referência útil para desenvolvedores e estudantes em trabalhos com algoritmos ou visualização

Recursos e exemplos de uso

  • A posição de cada número reflete rapidamente o resultado da verificação de primalidade
  • É possível processar uma grande quantidade de números de uma só vez, inclusive para explorar a distribuição de primos em números maiores
  • É fácil personalizar diferentes formatos de grade, como quadrados e retângulos
  • É um material importante de aprendizado e análise em ensino de matemática, pesquisa de algoritmos e apresentações visuais
  • Pode ser utilizado não só em exploração matemática, mas também em desafios de programação, entrevistas e diversas outras áreas

1 comentários

 
GN⁺ 2025-08-21
Comentários no Hacker News
  • Olá! Ontem à noite, por diversão, fiz esta ferramenta simples de visualização em grade de números primos. Fui inspirado por um post "Show HN" que encontrei por acaso há alguns dias post. Ela usa o teste de primalidade de Miller-Rabin e toma como base os primos da sequência OEIS A014233, então consegue testar primalidade até 3317044064679887385961980. Como exemplo, veja este link. Os três círculos que aparecem ali correspondem aos primos abaixo: 3317044064679887385961783
    3317044064679887385961801
    3317044064679887385961813
    Espero que isso também seja divertido para vocês

    • A visualização ficou muito legal! Seria ótimo adicionar um recurso que mostrasse qual primo é quando o mouse passa sobre um ponto. E também fico curioso se surgiriam novos padrões ao aumentar o número de colunas em X a cada linha (ou se X fosse um primo)

    • Obrigado por fazer isso! É muito divertido ir aumentando rapidamente o número de colunas e encontrar padrões repetidos, pequenos movimentos em espiral ou linhas com grandes curvaturas. Quando eu era mais novo, eu gostava muito do aspecto de quebra-cabeça lógico da matemática, mas no fim do ensino médio e na faculdade a matemática começou a parecer cada vez mais abstrata e difícil. Se eu tivesse tido uma ferramenta de visualização assim, acho que teria sentido os conceitos matemáticos de forma mais concreta e continuado curioso sobre as relações escondidas por trás das fórmulas

    • Também seria muito interessante ter um recurso para mudar a base numérica para 16 ou outras bases. Fico muito curioso para ver que mudanças de padrão apareceriam

    • Muito legal! Depois de ver o que você fez, eu também mergulhei pesado na parte visual para procurar padrões por conta própria :D Mas como dá para organizar colunas e linhas do jeito que quiser, no fim acho que minha tentativa não significou muita coisa :D

  • Vou compartilhar um jeito estranho: olho para inteiros em unidades de pack de 100 números. Se houver um primo no pack, pinto de preto; se não houver, de vermelho. O primeiro pack contém 100 inteiros consecutivos, o segundo contém um número a cada dois, o terceiro um número a cada três, e assim por diante. Cada pack começa logo depois de onde o pack anterior terminou. A linha 1 tem um pack, a linha 2 tem dois, a linha 3 tem três... e assim vai. Tem uma imagem aqui. Parece uma escrita hieroglífica de outro universo. Ainda não entendo bem por que fica assim. Para comparar com uma distribuição aleatória, dá para mudar o código assim: if (isPrime(myNum)) return 1; para if (Math.random()>0.99) return 1; e a diferença fica gritante. Tenho muita curiosidade sobre de onde vêm a simetria e as propriedades desses padrões baseados em primos

    • Este comentário explica bem a imagem. Essencialmente, é uma visualização de gcd(x,y), e quase não tem relação com primos. Sabendo disso, fica mais fácil entender a causa de muitos dos padrões. Ainda assim, é uma visualização realmente interessante

    • A explicação é um pouco diferente do código no link. Não é que o pack de ordem N seja preenchido com inteiros espaçados de N em N, mas sim que cada pack da linha N contém inteiros espaçados de N em N. Por exemplo, o primeiro pack da segunda linha é {101, 103, 105, ..., 299}, e o segundo pack é {102, 104, 106, ..., 300}. Entendendo esse princípio, o padrão fica bem explicado neste comentário

    • Fiquei bastante obcecado por essa ideia. No começo, achei que seria fácil ligar isso à espiral de Ulam, mas esse rabbit hole leva a resíduos polinomiais e à misteriosa "Conjecture F" (explicação). Sobre parallax primes, este link traz uma explicação mais detalhada e vários conhecimentos de fundo relacionados; em especial, fiquei bem satisfeito com a interpretação geométrica nesta página

    • Brinquei com isso deste jeito: exemplo. Descobri que, se você repetir só packs pares ou ímpares, o padrão de fato converge. Muito intrigante

  • Quero sugerir que você também desenhe a espiral de Ulam wiki da Ulam spiral. E, se isso fosse o estado inicial do Game of Life de Conway, fico muito curioso para saber se padrões interessantes evoluiriam. Acho que seria possível fazer brute-force em grades iniciais de vários tamanhos, selecionar os jogos que durem mais que alguns passos e então observar manualmente. Se algum pequeno padrão de grade ou espiral de primos gerasse algo especial, talvez o HN ficasse em polvorosa

    • Não é exatamente a mesma coisa, mas tenho um gerador de espiral de Ulam que fiz há mais de 10 anos. Link. Ele não marca só os primos; o tamanho do ponto é determinado pela quantidade de divisores pares que o número naquela posição tem

    • Mais um voto para a espiral de Ulam. No começo, eu estava me perguntando por que não apareciam diagonais. Eu esperava justamente uma espiral de Ulam

    • Outra ferramenta de Ulam spiral

  • Minha intuição sobre números primos era que eles ficavam raros muito rapidamente, mas na prática há primos demais

    • Os primos realmente ficam cada vez mais difíceis de encontrar. Por exemplo, se você desenhar todos os primos em uma única linha, dá para ver claramente a diferença (veja aqui). O famoso teorema dos números primos na teoria dos números trata exatamente disso. A quantidade de primos até n é aproximada por n/log n, e a densidade de primos perto de n converge para 1/log n. Você também pode ver minha explicação do teorema dos números primos e a Wikipedia

    • Há muita pesquisa sobre esse tema Wikipedia

    • A maioria das pessoas pensa assim. Acho que é porque aprendemos que encontrar primos é difícil. Na verdade, encontrar primos não é difícil. O que parece difícil para nós é determinar se um inteiro é primo. Na verdade, há mais primos do que quadrados perfeitos

  • Quando o valor de cols (colunas) é primo, os padrões aparecem de forma muito bonita

    • Quando o número de columns é um primo p, os números de cada coluna passam a ter o mesmo resto módulo p. Então os múltiplos de p deixam de ser primos, e isso faz surgir padrões diagonais

    • Mais do que a coluna ser prima, também surgem padrões interessantes quando cols+1 ou cols-1 têm muitos divisores (por exemplo: 25, 91, 119). Também é interessante que os números perto de primos tenham muitos divisores

    • Quando as colunas são 7, aparecem muitas diagonais indo do canto superior direito para o inferior esquerdo; quando são 5, do superior esquerdo para o inferior direito. Também tenho curiosidade sobre a frequência de sexy primes consecutivos. Queria saber se esse padrão se quebra em números grandes

    • O padrão quando cols % 30 == 0 (30, 60, 90, 120 etc.) é realmente interessante. As linhas verticais retas ficam bem evidentes. Se somar ou subtrair 1 (119 ou 121), parece que as linhas “giram” para a esquerda ou para a direita. Ferramenta de visualização muito legal

    • A maioria dos padrões que aparecem na verdade não são propriedades dos primos. Se você marcar apenas os números que não são divisíveis pelos primeiros 100 números naturais, a figura fica quase igual

  • Recentemente, eu também fiz uma ferramenta de visualização de primos:
    https://ilmenit.github.io/prime-fold/
    Além da visualização, é uma ferramenta que usa algoritmos evolutivos e funções de fitness para encontrar funções matemáticas que geram ou contêm primos.
    Modo PrimeFold (embedding 2D): você insere ou evolui duas funções, f_x(n) e f_y(n), para mapear números em coordenadas 2D. Primos e compostos são visualizados de forma diferente. Ex.: f_x(n) = n, f_y(n) = n^2.
    Modo PrimeGen (geração 1D): você insere ou evolui uma única função f(n) para criar uma sequência numérica. A ferramenta visualiza se cada valor de saída é primo e quantos primos únicos existem. Ex.: f(n) = 2*n + 1

  • Se você configurar 1, 7, 100, parece um ticker de constelações com chevrons de Stargate :D

  • Se você der zoom out neste link e aumentar e diminuir o valor de cols de um em um, dá para observar mudanças no padrão. As variações de -7 até +5 são impressionantes. O mesmo vale em #1-200-420

  • Brincando em Python, comparei os últimos dígitos (na base 10) de primos consecutivos e encontrei uma relação interessante. Como 2 e 5 aparecem só uma vez, deixei de fora e contei a frequência das transições entre dígitos, como 1->3, 1->5, etc. Eu achava que, por os primos parecerem aleatórios, as frequências seriam quase iguais, mas havia diferenças estatisticamente significativas. Ninguém ainda sabe por quê

  • Meu palpite era que os primos seriam muito mais raros e que essa taxa de queda aumentaria muito mais rápido à medida que os números crescem, mas na prática ainda há muitos deles. Em [1, 10.000, 10.000], a parte de baixo ainda está bem densa. Claro que fica menos denso. O intervalo médio entre primos é log(n) (prime number theorem)