Clique em dois pontos para trocar os rótulos deles, ou use o botão que sorteia uma permutação. A geometria não muda: o que muda é qual ponto se chama P1. Repare no que acontece com as três leituras — o estado do Process não se mexe, a distribuição por posição se mexe toda, e a distribuição por rótulo não se mexe de novo. As duas pontas são a mesma propriedade vista de dois lados.
O mesmo conjunto, lido por dois corpos: o Read-Process-Write deste artigo e o codificador recorrente de IL33. O botão percorrer as 720 faz o passeio inteiro sem a mão de ninguém, e os contadores param onde o artigo diz que param — 1 num corpo e 720 no outro.
As duas contagens lado a lado, a diferença d(6d + 2 − 3m), e o limiar m = 2d + 1 marcado no eixo. Empurre m acima do limiar e a diferença troca de sinal exatamente na casa seguinte — em inteiros não há meia passagem. E mexa em d: o limiar anda, mas a regra não, porque escrevendo m = 2d + k a diferença vira d(2 − 3k), e o sinal disso não tem d dentro.
À esquerda, as fibras da soma: quantos subconjuntos de k elementos de {1, …, M} caem em cada soma. A maior fibra fica destacada, e ela mora sempre no meio, porque os coeficientes são simétricos. À direita, o histograma de erros por exemplo medido no programa em C++23, com a coluna do 1 vazia sobreposta à binomial que a preencheria. As duas distribuições ensinam a mesma coisa por caminhos opostos: uma soma joga fora informação, e um espaço de saída restrito proíbe configurações de erro.