2 pontos por GN⁺ 2023-09-07 | 1 comentários | Compartilhar no WhatsApp
  • A pista de trem Duplo montada pela criança parece um loop fechado, mas o desafio é verificar, por condições de ângulo e posição, se as peças foram encaixadas à força
  • O critério matemático consiste em primeiro verificar se a diferença entre o número de curvas para a esquerda e para a direita é múltipla de 12 e, depois, calcular se a soma dos vetores de deslocamento de cada peça é 0
  • A solução mais bem avaliada calcula que a condição de ângulo é satisfeita, mas a soma dos deslocamentos é 4.5 -3 -2 0.5, não 0, portanto não é um loop sem tensão
  • Para encaixar exatamente, é preciso remover e adicionar algumas peças; se for para acrescentar apenas uma peça, uma sugestão é inserir uma reta 2-2 depois da primeira curva cinza, por exemplo
  • Na prática, é possível avaliar se há tensão excessiva observando também a planicidade da pista, a flexão e os vãos nas juntas, e se o trem descarrila ou os vagões se separam durante o percurso

Como determinar se a pista Duplo foi fechada à força

  • A pessoa que fez a pergunta gostou da pista de trem Duplo montada pelas crianças, mas queria verificar se as peças estavam sob tensão excessiva, com risco de dano
  • A pista é composta por trilhos curvos e trilhos retos
    • A passagem de nível funciona, na prática, como um trilho reto
    • 12 trilhos curvos formam um círculo naturalmente, mas forçar 13 trilhos curvos em um formato circular pode gerar tensão na pista
  • O foco da pergunta são dois pontos
    • Se existe um método lógico rápido para determinar se há tensão
    • Para reduzir a tensão, qual peça e posição seriam melhores ao remover ou adicionar 1 peça

Condição de ângulo: diferença entre peças curvas à esquerda e à direita

  • A primeira verificação é a existência de incompatibilidade angular
  • Como 12 peças curvas Duplo formam um círculo completo, a diferença entre o número de peças curvas à esquerda e à direita deve ser múltipla de 12
  • A solução mais bem avaliada começou no cruzamento e acompanhou os ângulos no sentido anti-horário, concluindo que o arranjo apresentado satisfaz essa condição
  • Outra resposta também resumiu que, quando há apenas curvas, o “número de peças que curvam para dentro - número de peças que curvam para fora” deve ser 12 para encaixar perfeitamente
  • Porém, essa condição é mais próxima de uma condição necessária: mesmo que seja satisfeita, a configuração não será necessariamente sem tensão

Condição de posição: a soma dos vetores de deslocamento deve ser 0

  • A segunda verificação é a existência de incompatibilidade de posição, somando todos os vetores de deslocamento do ponto inicial ao ponto final de cada peça e verificando se o resultado é 0
  • Tomando o comprimento de uma peça reta como 1, é possível calcular o vetor de uma peça reta conforme a direção
    • Uma reta 0-0 no ângulo 0 é (1, 0)
    • Uma reta 1-1 no ângulo 1, ou seja, 30 graus, é (cos 30°, sin 30°) = (√3/2, 1/2)
  • Uma peça curva é tratada como tendo raio igual ao dobro do comprimento de uma peça reta
    • A curva 0-1 é (2 sin 30°, 2(1 - cos 30°)) = (1, 2 - √3)
  • As coordenadas da direção de todas as peças se dividem em uma parte racional e uma parte racional multiplicada por √3, então a solução as expressa como uma lista de 4 números para fazer a soma
  • Para o loop se fechar sem tensão, o resultado da soma dos 4 números de cada peça deve ser quatro zeros

Resultado do cálculo: o arranjo atual não fecha exatamente

  • A soma de todas as peças do arranjo apresentado resulta em 4.5 -3 -2 0.5
  • Em deslocamento real, isso corresponde a (4.5 - 3√3, -2 + 0.5√3)
  • Como esse valor não é 0, a configuração não está sem tensão
  • Ao desenhar o caminho ideal calculado, ele não forma um loop fechado; as extremidades ficam desalinhadas
  • A resposta conclui que não é possível completar esse loop com uma combinação de menos de 5 peças

Propostas de correção: solução exata e adição de uma única peça

  • Para criar uma solução exatamente sem tensão, é preciso remover peças específicas e adicionar outras
  • Uma solução usa a seguinte combinação
    • Remover 10-9, 9-10, 5-5
    • Adicionar 1-1, 8-8
  • A solução calcula que a combinação 3-4 3-4 1-1 8-8 11-11 preenche o deslocamento necessário
    • Há mais 3 combinações de 5 peças que produzem o mesmo deslocamento, mas elas deixam o número de peças curvas ímpar e, portanto, criam incompatibilidade angular
  • Se a correção prática for trocar apenas uma peça, há a opção de adicionar uma peça 2-2
    • Um exemplo de posição é depois da primeira curva cinza
  • Como forma mais simples de alinhamento, também foi sugerido manter as peças retas em pares paralelos, mas reposicioná-las no lado oposto, afastadas por 6 unidades líquidas de curva

Verificações práticas rápidas: planicidade, juntas e funcionamento real

  • Antes do cálculo matemático, o primeiro sinal a observar é se a pista fica plana
    • Um loop encaixado à força pode entortar um pouco em 3 dimensões, em vez de permanecer em um plano 2D
  • “Tensão demais” é algo subjetivo, e as conexões toleram certo desalinhamento lateral, que pode ser distribuído pelo loop inteiro
  • A tensão excessiva pode aparecer nas juntas
    • Algumas conexões não parecem retas e ficam visivelmente curvadas
    • Os vãos entre os trilhos são largos ou ficam desalinhados como degraus
    • Isso pode ser verificado com a mão
  • O teste prático final é colocar o trem para andar de verdade
    • Se o percurso for bastante suave e estável, a pista consegue suportar essa carga por enquanto
  • Outra resposta propôs um critério mais lúdico: se, ao rodar com 2 a 4 vagões conectados, os vagões se separarem ou o trem descarrilar, a pista está tensionada demais

1 comentários

 
GN⁺ 2023-09-07
Opiniões no Hacker News
  • Tenho uma pergunta sobre Duplo/Lego: será que existe um nome para o problema combinatório de contar o número de estruturas que podem ser feitas com N peças de Lego 1×M?
    Peças que podem girar livremente são consideradas a mesma estrutura. Por exemplo, com duas peças de Lego 1×2, considero que há 2 arranjos: quando estão conectadas por dois pinos, uma acima da outra, e quando estão conectadas por um pino. Como uma conexão por um pino permite rotação livre de 270 graus ou mais, a diferença entre o pino da esquerda e o da direita vira a mesma estrutura se levarmos em conta a simetria de rotação
    Supondo Legos “ideais”, com tolerância de fabricação zero, e sem permitir técnicas de montagem ilegais. Também fico curioso se esse problema é bem definido, se existe uma solução em forma fechada, ou se há algum programa gerador
    Quando N fica suficientemente grande, graus de liberdade de rotação podem criar estruturas adicionais que ficavam ocultas em outras direções de rotação, então imagino que o gerador fique muito complexo

  • Eu conversava com frequência com um amigo sobre uma pergunta parecida: dado um conjunto fixo de trilhos curvos de trem Duplo, quantos traçados fechados diferentes é possível montar?
    Trechos retos em geral podem ser ignorados, porque você pode adicionar um par em cada lado de loops paralelos. Mas também existem alguns formatos triangulares interessantes que quebram esse padrão
    Meu amigo chegou a fazer um programa que encontrava soluções de verdade e, no geral, funcionava bem, gerando traçados interessantes. Ele nunca conseguiu adicionar os desvios
    Muitas vezes era difícil determinar se dois traçados eram iguais, e isso acabou levando à matemática do problema dos colares: https://en.wikipedia.org/wiki/Necklace_problem

  • Como engenheiro mecânico licenciado, eu diria que, rigorosamente, o trilho não está em “tração”. Ele está em flexão, que é uma combinação de tração e compressão
    Se quiserem mais explicações, posso continuar

    • Eu li aquilo como “binding”, ou seja, que a junta entre as peças está sob tensão e transmitindo força
    • Então dá para desenhar o diagrama de momento fletor desse circuito? :D
  • Achei mais interessante a introdução aprofundada aos trilhos Duplo no site linkado
    https://www.cailliau.org/Alphabetical/L/Lego/Duplo/Train/Rai...
    Quando criança, eu tinha tanto os trilhos Duplo pretos “novos” quanto os “antigos”. Lembro que, mesmo aos quatro anos, achava os trilhos pretos antigos incômodos e gostava muito mais dos novos

    • Esse é o link postado pelo usuário Weathervane? Fiquei curioso por que o resto dos comentários são todas strings indecifráveis
      Algo como “gjryir frpgvbaf qb abg znxr na rknpg pvepyr, gurer vf n fznyy bireync, naq fb znxr n pv”
  • Tenho uma criança de cinco anos, então monto com frequência trilhos de madeira BRIO em várias configurações.
    Quando a criança vai expandindo os trilhos, eu normalmente fico alguns passos atrás, ajustando discretamente o layout para que ele não fique excessivamente restrito. É simples, mas vira uma resolução de problema bem divertida, e é bom poder passar tempo com a criança.

    • O que há de bom nos trilhos BRIO é que eles não deixam a casa com aparência de bagunçada como outros conjuntos de trilhos de plástico.
      Eles são bonitos e agradáveis ao toque. O trem é lento, mas tem bastante torque, o que dá uma espécie de “sensação de massa” à experiência. É diferente de muitos brinquedos de controle remoto que correm rápido demais para o tamanho e ficam engasgando no carpete ou em desníveis.
    • Eu também faço isso. Meu filho e os amigos dele gostam de criar grandes circuitos de trem.
      Eu também gosto, mas consigo enxergar um pouco melhor do que as crianças onde está havendo tração, então tento corrigir essas partes.
    • Os trilhos BRIO são bem projetados, de modo que podem ser combinados de inúmeras maneiras, incluindo desvios etc., mas as lacunas que costumam surgir geralmente podem ser preenchidas corretamente com uma das peças retas mais curtas.
      Isso significa que, no sistema como um todo, a quantidade de tipos necessários de comprimento de trilho reto se limita a um pequeno número inteiro. Já o TrackMaster precisa de muito mais.
    • Estou apenas começando minha jornada com BRIO. Ainda não comprei um conjunto e estou mergulhado em Magnatiles.
      Fico curioso se alguém já fresou trilhos BRIO por conta própria. Talvez para criar formatos peculiares que não são possíveis com as peças padrão.
      Já fiz um carrinho em forma de banana compatível com trilhos BRIO, mas ainda não tentei fabricar trilhos.
  • A análise matemática talvez possa ser mais simples. Basta tratar cada peça de trilho como um vetor 2D e somar tudo. Em um layout sem tração, a soma dá (0, 0).
    Como medida de tração, dá para modelar pela média de todos os vetores, supondo que o desalinhamento de posição esteja distribuído uniformemente. Portanto, para o mesmo deslocamento, quanto menor o número de peças, mais significativo ele é.
    Pode parecer que isso ignora a rotação, mas na verdade ela está incluída. O vetor efetivo de uma peça de trilho representa tanto a direção atual quanto o deslocamento acrescentado por aquela peça. Se modelado em código, o cursor teria um ângulo de direção e uma posição (x, y).
    Uma matemática relacionada é o fato de que a soma dos ângulos externos de um polígono é 360 graus, então o quanto se está distante de 360 graus poderia servir como outra medida. Nesse caso não é útil, mas também vem à mente o número de enrolamento da análise complexa. É uma forma de caminhar localmente ao longo de uma curva e entender qual lado é o “interior” e quantas vezes a curva envolve determinado ponto.

    • Não tenho base quantitativa para isso, mas, mesmo que a tração líquida total seja zero, parece possível que reste tração local em algum ponto.
      Poderia ser algo como criar uma forma levemente autointersectante que empurre aquele trecho para um estado de tração, enquanto um trecho complementar soma o negativo do primeiro, mas sem autointerseção.
    • Estendendo a ideia dos ângulos de polígonos, esses trilhos parecem ter, cada um, uma curvatura de cerca de 30 graus.
      Então teria de haver 360/30 = 12 trilhos curvando para a direita a mais do que para a esquerda, ou vice-versa. É preciso contar, claro, mas dá para pegar o jeito rapidamente de ir somando +1 ou -1 ao seguir os trilhos. Se no final der 12, está perfeito, e a distância em relação a 12 vira uma estimativa da tração.
    • Como isso é diferente da solução que está na página?
  • Os outros fóruns do StackExchange são ótimos. Perguntas como esta e as respostas que surgem lá são excelentes.
    Ao longo dos anos vi discussões muito boas em aviação, experiência do usuário e matemática, com muitas percepções interessantes em respostas longas e detalhadas. Algumas horas atrás, até um post sobre latim apareceu no HN.
    Mas, pelo menos para mim, o Stack Overflow não é mais assim. Antigamente eu fazia perguntas e respondia, mas algo mudou. Fiquei com a sensação de que foi tomado por moderadores excessivamente meticulosos, e hoje quase não participo mais.

  • Pelo que entendo, o ponto fraco perigoso é o pescoço do pino de encaixe em um dos trilhos conectados.
    No Duplo, há pinos-chave e furos nos dois lados do elo. Em um desalinhamento severo, um lado do pino pode receber pressão lateral adicional e deformar ou quebrar.
    Dito isso, uma tração tão forte provavelmente surge principalmente ao tentar forçar ou travar a última junta. Uma criança pode tentar isso quando os pais não estão por perto supervisionando se a montagem é possível. Quando os pais perceberem, talvez já seja tarde, ou então já tenha dado certo e não haja mais necessidade de consertar.
    Se o pescoço do pino quebrar, então era o destino dele mesmo. Não é grande coisa. O segundo pino ainda mantém a junta. Só que, se não se aprender a lição, aquele trecho vira o elo mais fraco.
    Se de algum jeito conseguiu forçar tudo para dentro de um loop, ótimo, é só fazer a locomotiva andar. Se os vagões não tombarem em uma fresta forçada ou em um trecho torcido, é continuar rodando; caso contrário, ajuste ou reconstrua.

  • Quando eu era criança, contava enquanto seguia os trilhos. Começava em 0; se o trilho curvava para a esquerda, somava 1; se curvava para a direita, subtraía 1.
    A resposta tinha de ser algo como ±12, ±24. Porque 12 peças formam um círculo.

    • Você consegue explicar por que isso é verdade como se eu tivesse cinco anos?
  • Acho que dá para verificar a tração abrindo o loop e observando o deslocamento entre a peça inicial e a peça final. Isso assume que o atrito com a superfície seja baixo o suficiente para que as peças possam se mover.
    Como solução de quebra-cabeça, dá para atribuir a cada tipo de peça um deslocamento final e o ângulo de conexão da próxima peça, começar nas coordenadas (0, 0), percorrer as peças atualizando a posição da última peça e então verificar o deslocamento entre a peça inicial e a final.
    O resultado se pareceria com a imagem da resposta. Mas atualizar os trilhos para minimizar o deslocamento é mais difícil.

    • Sobre a condição “se o atrito com a superfície for baixo o suficiente”, pela minha experiência com layouts de trilhos que já ocuparam uma boa parte do térreo da nossa casa, se você abrir um trecho sob tração e balançar um pouco o trilho inteiro para frente e para trás, mesmo em piso de madeira dura ele tende a se acomodar em um estado mais relaxado.
      Nesse ponto, dá para ajustar as peças envolvidas e muitas vezes fechar a fresta, que ficou maior. Era um layout meio como a cena de perseguição de trem de The Wrong Trousers, de Wallace and Gromit.
    • Para trilhos desse tamanho, acho que o atrito com a superfície não seria baixo o bastante para o conjunto inteiro se realinhar sozinho.
      Se houver tração, as pontas do trilho perto da abertura vão se separar, mas é difícil imaginar o conjunto todo se movendo.
    • Sim. A pergunta também diz que dá para fazer isso.
      “Sei que posso sentir isso diretamente removendo uma peça e encaixando-a de novo.”
    • Então é só montar em uma mesa de air hockey?
      Talvez também dê para montar em um piso liso e plano e jogar pó de shuffleboard por cima.