2 ポイント 投稿者 GN⁺ 2023-09-07 | 1件のコメント | WhatsAppで共有
  • 子どもが作ったDuploの列車トラックが見た目には閉じたループになっているものの、ピースを無理やり合わせた状態かどうかを角度条件と位置条件で判定するパズル
  • 数学的な判定は、曲線ピースの左右の回転数の差が12の倍数かを確認したうえで、各ピースの変位ベクトルの和が0かどうかを計算する方法
  • 最も高く評価された解法では、角度条件は満たすものの変位和が4.5 -3 -2 0.5で0ではないため、応力のないループではないと計算している
  • 正確に合わせるには一部のピースを削除・追加する必要があり、単一のピースだけを追加するなら最初の灰色の曲線の後ろなどに2-2の直線ピースを入れる案が示されている
  • 実際には、トラックの平坦性、継ぎ目のたわみ・隙間、列車走行中の脱線や客車の切り離れの有無も合わせて見ることで、無理な張力かどうかを判断できる

Duploトラックが無理やり閉じられているかを判断する

  • 質問者は子どもたちが作ったDuploの列車トラックを気に入っていたが、ピースに過度な張力がかかって損傷する可能性があるかを確認したいと考えている
  • トラックは曲線レールと直線レールで構成されている
    • 道路踏切は実質的に直線レール1本と同じ役割として扱う
    • 12本の曲線レールは自然に円を作るが、13本の曲線レールを無理に円形に合わせるとトラックに張力が生じる可能性がある
  • 質問の焦点は2つある
    • 張力の有無をすばやく論理的に判断する方法があるか
    • 張力を減らすためにピースを1個抜く、または足すなら、どのピース・どの位置がよいか

角度条件: 曲線ピースの左右差

  • 最初の検査は角度の不一致があるかどうか
  • Duploの曲線ピース12個で完全な円ができるため、左向き曲線ピース数と右向き曲線ピース数の差は12の倍数でなければならない
  • 最も高く評価された解法では、交差点から始めて反時計回りに角度を追跡し、提示された配置はこの条件を満たしていると見ている
  • 別の回答でも、曲線しかない場合は「内側に曲がるピース数 - 外側に曲がるピース数」が12であればきれいに合うと整理している
  • ただしこの条件は必要条件に近く、満たしていても必ずしも応力のない配置になるわけではない

位置条件: 変位ベクトルの和が0であること

  • 2つ目の検査は位置の不一致があるかどうかで、各ピースの始点から終点までの変位ベクトルをすべて足して0になるかを確認する
  • 直線ピースの長さを1とすると、向きに応じて直線ピースのベクトルを計算できる
    • 角度0の直線0-0(1, 0)
    • 角度1、つまり30度の直線1-1(cos 30°, sin 30°) = (√3/2, 1/2)
  • 曲線ピースは、直線ピース長の2倍の半径を持つものとして扱う
    • 0-1曲線は(2 sin 30°, 2(1 - cos 30°)) = (1, 2 - √3)
  • すべてのピース方向の座標は、有理数部分と√3が掛かった有理数部分に分けられるため、解法ではこれを4つの数字のリストとして表現して合算している
  • ループが張力なしで閉じるには、各ピースの4つの数字をすべて足した結果が4つの0でなければならない

計算結果: 現在の配置は正確には閉じていない

  • 提示された配置のピースをすべて足した結果は4.5 -3 -2 0.5
  • 実際の変位で書くと(4.5 - 3√3, -2 + 0.5√3)に相当する
  • この値は0ではないため、その配置は応力のない状態ではない
  • 計算上の理想経路を描くと、閉じたループではなく終点がずれた形になる
  • 回答では、5個未満のピースの組み合わせではこのループを完成できないとまとめている

修正案: 正確な解法と単一ピース追加案

  • 正確に応力のない解法を作るには、特定のピースを取り除いて別のピースを追加する必要がある
  • ある解法では次の組み合わせを使う
    • 10-9, 9-10, 5-5を削除
    • 1-1, 8-8を追加
  • 解法では3-4 3-4 1-1 8-8 11-11の組み合わせが必要な変位を埋めると計算している
    • 同じ変位を作る5個の組み合わせがさらに3通りあるが、曲線ピース数が奇数になって角度不一致を生むと見ている
  • 単一ピースだけを変える現実的な修正としては、2-2ピースを追加する案がある
    • 例としての位置は、最初の灰色の曲線の後ろ
  • より簡単な整列方法としては、直線ピースを互いに平行なペアにしつつ、純曲線6単位だけ離れた反対側へ再配置する方法も示されている

すばやい実用チェック: 平坦性、継ぎ目、実際の走行

  • 数学計算の前にまず見るべきサインは、トラックが平らに置けるかどうか
    • 無理やり合わせたループは2次元平面ではなく、わずかに3次元的にねじれることがある
  • 「張力がかかりすぎているか」は主観的であり、接続部はある程度の横方向のずれを許容し、それをループ全体に分散できる
  • 過度な張力は継ぎ目に現れることがある
    • 一部の接続部がまっすぐでなく、曲がって見える
    • レール同士の隙間が広かったり、段差のようにずれていたりする
    • 手で触って確認できる
  • 最終的な実用テストは、実際に列車を走らせてみること
    • 走行がかなりスムーズで安定していれば、そのトラックは現時点ではその荷重に耐えられる
  • 別の回答では、客車を2〜4両つないで走らせたときに客車が切り離れたり脱線したりするなら、トラックが張りすぎていると見る遊び心のある基準を示している

1件のコメント

 
GN⁺ 2023-09-07
Hacker News のコメント
  • Duplo/Lego について質問があります。N個の 1×M レゴで作れる構造物の数を数える組合せ論の問題に名前があるのか気になります
    自由に回転できるピースは同じ構造とみなします。例えば 1×2 レゴ 2個の場合、配置数は2つと考えます。上下が2つのポッチでつながっている場合と、1つのポッチでつながっている場合です。1ポッチ接続は270度以上自由に回転できるため、左右どちらのポッチかの違いは回転対称性を考慮すると同じ構造になります
    製造公差が0の「理想的な」レゴを仮定し、違法な組み立てテクニックは許可しません。この問題がきちんと定義できるのか、閉形式の解があるのか、あるいは生成プログラムがあるのかも気になります
    Nが十分大きくなると、回転の自由度によって、別の回転方向では隠れていた追加の構造を作れるようになるため、生成器は非常に複雑になりそうです

  • 友人と似たような疑問をよく話していました。固定された曲線 Duplo 列車レールのセットがあるとき、異なる閉じたループの線路配置をいくつ作れるのか、というものです
    直線区間はだいたい無視できます。平行なループの両側に1組ずつ追加できるからです。ただし、そのパターンを崩す面白い三角形状もあります
    友人は実際に解を探すプログラムまで作り、概ねうまく動いて興味深い配置を生成していました。分岐器は最後まで追加できませんでした
    2つの線路配置が同じかどうかを判定するのが難しい場合が多く、最終的にはネックレス問題の数学につながりました: https://en.wikipedia.org/wiki/Necklace_problem

  • 認可を受けた機械技術者として言うと、厳密には線路が「引張」状態にあるわけではありません。曲げ状態であり、引張と圧縮が組み合わさったものです
    もっと説明が必要なら続けて説明できます

    • 私はそれを “binding”、つまりピース間の継ぎ目に応力がかかって力を伝えている、という意味に読みました
    • では、そのコースの曲げモーメント図を描けますか? :D
  • リンク先サイトの Duplo レールの詳しい紹介のほうが面白かったです
    https://www.cailliau.org/Alphabetical/L/Lego/Duplo/Train/Rai...
    子どものころ、「新型」と「旧型」の黒い Duplo レールを両方持っていました。4歳のときでも旧型の黒いレールは使いづらく、新型のほうがずっと好きだった記憶があります

    • それは Weathervane ユーザーが投稿したリンクですか? 残りのコメントがなぜ全部判読不能な文字列なのか気になります
      “gjryir frpgvbaf qb abg znxr na rknpg pvepyr, gurer vf n fznyy bireync, naq fb znxr n pv” という感じです
  • 5歳の子どもがいて、BRIOの木製列車レールをいろいろな構成でよく組み立てています
    子どもが線路を伸ばしていくと、私はたいてい数手遅れてそっと配置を手直しし、過度に拘束されないようにします。単純ですが、なかなか楽しい問題解きになり、子どもと時間を過ごせるのも良いです

    • BRIOのレールの良いところは、ほかのプラスチック製レールセットのように家の中を散らかって見せないことです
      見た目がよく、手触りも良いです。列車は遅いもののトルクが高く、体験に「質量感」のようなものを与えます。サイズのわりに速すぎて、カーペットや段差でつまずく多くのリモコン玩具とは違います
    • 私もそうしています。息子と友だちは大きな列車の循環線を作るのが好きです
      私も好きですが、子どもたちよりもどこに張力がかかっているかが少しよく見えるので、そういう部分を直そうとします
    • BRIOのレールはよく設計されていて、分岐器などを含め非常に多くの方法で組み合わせられますが、通常できる隙間は短い直線レールのどれかで適切に埋められます
      つまり、システム全体で必要な直線レールの長さの種類は小さな整数個にとどまるということです。一方、TrackMasterでははるかに多く必要です
    • 私はこれからBRIOの旅を始める段階です。まだセットは買っておらず、Magnatilesに夢中です
      BRIOレールを自分でミリングしてみた人がいるのか気になります。標準部品ではできない特殊な形を作るためかもしれません
      BRIOレールと互換性のあるバナナ車両を1つ作ったことはありますが、レール製作はまだ試していません
  • 数学的な分析はもっと単純かもしれません。レール片ごとに2次元ベクトルとして見て、すべて足し合わせればよいのです。張力のない配置では合計が (0, 0) になります
    張力の尺度としては、位置の不一致が均等に分散されると仮定し、すべてのベクトルの平均としてモデル化できます。したがって同じ変位でも、ピース数が少ないほど意味が大きくなります
    回転を無視しているように見えるかもしれませんが、実際には含まれています。レール片の有効ベクトルは、現在の向きとそのピースが加える変位の両方を表すからです。コードでモデル化するなら、カーソルは方位角と (x, y) 位置を持ちます
    関連する数学として、多角形の外角の和が360度であるという事実があり、360度からどれだけ離れているかを別の尺度にできます。この場合には有用ではありませんが、複素解析の回転数も思い浮かびます。曲線に沿って局所的に歩きながら、どちら側が「内側」なのか、曲線が特定の点を何回巻いているのかを理解する方法です

    • 定量的な根拠はありませんが、全体としては正味の張力が0でも、どこかに局所的な張力が残ることはありそうです
      少し自己交差する形を作ってその区間を張力状態に押し込み、補完的な区間は最初の区間の負として合算されるものの、自己交差はない、というような形です
    • 多角形の角度というアイデアを広げると、これらのレールはそれぞれ約30度の曲がりを持っているように見えます
      なので右に曲がるレールが左より 360/30 = 12 個多いか、その逆である必要があります。数える必要はありますが、線路をたどりながら +1 または -1 を足すのにはすぐ慣れます。最後に12になれば完璧で、12からの距離が張力の推定値になります
    • それはページにある解法とどう違うのですか?
  • ほかのStackExchangeフォーラムは良いですね。こういう質問と、そこから出てくる回答がすばらしいです
    ここ数年、航空、ユーザーエクスペリエンス、数学の分野で素晴らしい議論を見てきましたし、長く詳しい回答には興味深い洞察がたくさんありました。数時間前にもラテン語関連の投稿がHNに上がっていました
    しかし少なくとも私にとって、Stack Overflowはもはやそうではありません。以前は質問も回答もしていましたが、何かが変わりました。過度に細かいモデレーターたちに支配されたように感じ、今ではほとんど参加しなくなりました

  • 危険な弱点は、接続されたレールの片側にある継ぎ手ピンの首部分だと理解しています
    Duploでは両側のリンクにキーピンと穴があります。ひどくずれた状態では、キーの片側に追加の横方向の圧力がかかり、変形したり折れたりする可能性があります
    ただし、このような強い張力は、最後の継ぎ目を無理に接続したりロックしようとしたりするときに主に起きる可能性が高いです。親がそばで組み立て可能かどうかを見ていないと、子どもが試してしまうかもしれません。親が気づくころにはすでに遅いか、成功してしまって直す必要がなくなっている可能性が高いです
    キーの首が折れるなら、単にそうなる運命だったということです。大したことではありません。2つ目のキーがまだ継ぎ目を保持します。ただし教訓を得なければ、その区間はより弱いリンクになります
    どうにかループに押し込めたなら、それでよし、機関車を走らせればいいです。列車の車両が、無理に広がった隙間やねじれた区間で転倒しなければそのまま走らせればよく、だめなら調整するか作り直せばよいです

  • 子どものころ、線路をたどりながら数えていました。0から始めて、線路が左に曲がれば1を足し、右に曲がれば1を引きました
    答えは ±12、±24 のような値である必要がありました。12個で1つの円になるからです

    • これがなぜ正しいのか、5歳の子どもに説明するように教えてもらえますか?
  • ループを切って、開始ピースと終了ピースの間のオフセットを見れば張力を確認できるのではないかと思います。表面摩擦が十分低く、ピースが動けるという仮定です
    パズルの解法としては、各ピースの種類に終端オフセットと次のピースの接続角を割り当て、(0, 0) 座標から始めてピースを順にたどりながら最後のピース位置を更新し、開始ピースと終了ピースの間のオフセットを確認すればよいです
    結果は回答の画像のように見えるでしょう。ただし、オフセットを最小化するようにレールを更新するのはもっと難しいです

    • 「表面摩擦が十分低ければ」という条件について、我が家の1階のかなりの部分を占めるレール配置までやった経験では、張力がかかった区間を開いて線路全体を前後に少し揺らすと、硬い木の床の上でもより緩んだ状態に落ち着くことが多いです
      その時点で関係するピースを調整すると、しばしばさらに大きくなった隙間を閉じられます。Wallace and GromitのThe Wrong Trousersの列車追跡シーンのような配置でした
    • そのくらい大きいレールだと、表面摩擦は全体が自力で再整列するほど低くはなさそうです
      張力があれば、切った部分の近くのレール端は開くでしょうが、全体が動くとは想像しにくいです
    • その通りです。質問にもそうできると書かれています
      「1ピースを外して再びはめ込み、手で感じ取れることは分かっています」
    • エアホッケー台の上で組み立てればいいのでしょうか?
      滑らかで平らな床に組み立ててから、シャッフルボード用の粉をまくのも手かもしれません