- बच्चे द्वारा बनाया गया Duplo ट्रेन ट्रैक देखने में closed loop है, लेकिन यह puzzle कोण और position conditions के आधार पर जांचती है कि क्या pieces को जबरन फिट किया गया है
- गणितीय फैसला पहले यह जांचकर किया जाता है कि curved pieces के left/right turns की संख्या का अंतर 12 का गुणज है या नहीं, फिर हर piece के displacement vectors का sum 0 है या नहीं
- सबसे high-rated solution के अनुसार angle condition तो सही है, लेकिन displacement sum
4.5 -3 -2 0.5है, 0 नहीं, इसलिए यह stress-free loop नहीं है - बिल्कुल सही फिट के लिए कुछ pieces हटाने/जोड़ने पड़ेंगे; अगर केवल एक piece जोड़ना हो, तो पहली grey curve के बाद आदि जगहों पर
2-2straight piece डालने का सुझाव आता है - असल में, ट्रैक की flatness, joints में bending/gaps, और train चलने पर derailment या coach separation को साथ देखकर समझा जा सकता है कि tension ज़रूरत से ज़्यादा है या नहीं
यह तय करना कि Duplo ट्रैक जबरन बंद किया गया है या नहीं
- प्रश्न पूछने वाले को बच्चों द्वारा बनाया गया Duplo ट्रेन ट्रैक पसंद आया, लेकिन वे जानना चाहते थे कि pieces पर excessive tension है या नहीं, जिससे damage हो सकता है
- ट्रैक curved rails और straight rails से बना है
- road crossing को व्यवहार में 1 straight rail जैसा माना गया है
- 12 curved rails स्वाभाविक रूप से एक circle बनाते हैं, लेकिन 13 curved rails को जबरन circular shape में फिट करने पर ट्रैक में tension आ सकता है
- सवाल का फोकस दो बातों पर है
- tension है या नहीं, इसे जल्दी और logical तरीके से judge करने का कोई तरीका है या नहीं
- tension कम करना हो तो 1 piece निकालते या जोड़ते समय कौन-सा piece/position बेहतर होगा
Angle condition: curved pieces के left-right का अंतर
- पहली जांच angle mismatch की है
- क्योंकि 12 Duplo curved pieces एक पूरा circle बनाते हैं, left curved pieces और right curved pieces की संख्या का अंतर 12 का गुणज होना चाहिए
- सबसे high-rated solution ने intersection से शुरू करके anticlockwise direction में angles track किए, और माना कि दिया गया layout यह condition satisfy करता है
- दूसरे उत्तरों ने भी summarize किया कि सिर्फ curves होने पर साफ़ फिट के लिए “अंदर की ओर मुड़ने वाले pieces की संख्या - बाहर की ओर मुड़ने वाले pieces की संख्या” 12 होनी चाहिए
- हालांकि यह condition करीब-करीब necessary condition है; इसे satisfy करने पर भी layout ज़रूरी नहीं कि stress-free हो
Position condition: displacement vector sum 0 होना चाहिए
- दूसरी जांच position mismatch की है; इसमें हर piece के start point से end point तक के displacement vector को जोड़कर देखा जाता है कि sum 0 है या नहीं
- straight piece की length 1 मानें, तो direction के हिसाब से straight piece का vector calculate किया जा सकता है
- angle 0 पर straight
0-0है(1, 0) - angle 1, यानी 30 degrees पर straight
1-1है(cos 30°, sin 30°) = (√3/2, 1/2)
- angle 0 पर straight
- curved piece को straight piece की length के 2 गुना radius वाला माना जाता है
0-1curve है(2 sin 30°, 2(1 - cos 30°)) = (1, 2 - √3)
- सभी piece directions के coordinates को rational part और
√3से multiplied rational part में बांटा जा सकता है, इसलिए solution इन्हें 4 numbers की list के रूप में express करके add करता है - loop बिना tension के close हो, इसके लिए हर piece के 4 numbers को जोड़ने पर result चारों zero होना चाहिए
Calculation result: मौजूदा layout ठीक-ठीक close नहीं होता
- दिए गए layout के सभी pieces को जोड़ने पर result
4.5 -3 -2 0.5है - actual displacement के रूप में यह
(4.5 - 3√3, -2 + 0.5√3)के बराबर है - यह value 0 नहीं है, इसलिए यह layout stress-free state में नहीं है
- calculation के हिसाब से ideal path draw करने पर यह closed loop नहीं, बल्कि end point shifted वाला shape बनता है
- उत्तर में summarize किया गया कि 5 से कम pieces के combinations से यह loop complete नहीं किया जा सकता
Fixes: exact solution और single-piece addition
- बिल्कुल stress-free solution बनाने के लिए कुछ specific pieces हटाकर दूसरे pieces जोड़ने होंगे
- एक solution निम्न combination इस्तेमाल करता है
10-9,9-10,5-5हटाएं1-1,8-8जोड़ें
- solution ने calculate किया कि
3-4 3-4 1-1 8-8 11-11combination required displacement भरता है- वही displacement बनाने वाले 5-piece combinations तीन और हैं, लेकिन उनमें curved pieces की संख्या odd हो जाती है, जिससे angle mismatch बनता है
- अगर practical fix में केवल एक piece बदलना हो, तो
2-2piece जोड़ने का विकल्प है- example position पहली grey curve के बाद है
- एक और सरल alignment method में straight pieces को parallel pairs में रखते हुए, उन्हें net curve के 6 units दूर opposite side पर rearrange करने का तरीका आता है
Quick practical checks: flatness, joints, actual running
- maths calculation से पहले देखने वाली पहली sign यह है कि ट्रैक flat रखा जा रहा है या नहीं
- जबरन फिट किया गया loop 2D plane में रहने के बजाय थोड़ा 3D में bend हो सकता है
- “too much tension” subjective है, और connectors कुछ हद तक side mismatch allow कर सकते हैं और उसे पूरे loop में distribute कर सकते हैं
- excessive tension joints पर दिख सकता है
- कुछ joints सीधे न होकर मुड़े हुए दिखते हैं
- rails के बीच gap बड़ा हो या step जैसा misalignment हो
- हाथ से छूकर check किया जा सकता है
- final practical test असल train चलाकर देखना है
- अगर running काफ़ी smooth और stable है, तो track फिलहाल उस load को सह सकता है
- दूसरे answer ने fun-oriented criterion दिया: 2–4 coaches जोड़कर चलाने पर अगर coaches अलग हो जाएं या derail हों, तो track को बहुत tight माना जा सकता है
1 टिप्पणियां
Hacker News पर राय
Duplo/Lego को लेकर मेरा एक सवाल है: N संख्या के 1×M Lego से कितनी संरचनाएँ बनाई जा सकती हैं, इसे गिनने वाली combinatorics समस्या का कोई नाम है क्या?
जिन टुकड़ों को स्वतंत्र रूप से घुमाया जा सकता है, उन्हें वही संरचना माना जाए। उदाहरण के लिए, दो 1×2 Lego के लिए व्यवस्थाओं की संख्या 2 मानी जाएगी: एक जिसमें ऊपर-नीचे दो studs से जुड़े हों, और एक जिसमें एक stud से जुड़े हों। एक-stud वाला जोड़ 270 डिग्री या उससे ज़्यादा तक स्वतंत्र रूप से घूम सकता है, इसलिए बाएँ/दाएँ stud का अंतर rotational symmetry मानने पर वही संरचना हो जाता है
निर्माण tolerance 0 वाले “ideal” Lego मानें, और illegal building techniques की अनुमति न हो। यह भी जानना है कि क्या यह समस्या well-defined है, क्या इसका closed-form solution है, या कोई generator program मौजूद है
N पर्याप्त बड़ा होने पर rotational degrees of freedom दूसरी rotation दिशाओं में छिपी हुई अतिरिक्त संरचनाएँ बना सकते हैं, इसलिए generator बहुत जटिल हो जाएगा लगता है
https://arxiv.org/abs/math/0504039
https://www.tandfonline.com/doi/abs/10.4169/amer.math.monthl...
दूसरे वाले के लिए sci-hub इस्तेमाल कर सकते हैं। 2D case में Tricia Muldoon Brown का काम भी है
https://www.sciencedirect.com/science/article/pii/S0012365X1...
https://arxiv.org/abs/1608.01562
Alexander M. Haupt का काम भी है
https://arxiv.org/abs/1810.10428
sequence के शुरुआती कुछ terms हाथ से calculate करके देखें कि वे database में पहले से हैं या नहीं
background के लिए https://en.wikipedia.org/wiki/Lattice_protein देख सकते हैं, और rotation के बाद समान solutions व self-intersections हटाने में हमने काफी समय लगाया था। local angles से specified chain absolute 3D space में खुद को intersect करती है या नहीं, यह तय करने में भी हैरानीजनक रूप से काफी दिलचस्प mathematics है
सीमित bonding points और 3D में duplicate counting के लिहाज से यह मिलती-जुलती समस्या है
उदाहरण: https://math.stackexchange.com/questions/237998/p%C3%B3lya-s...
एक दोस्त के साथ हम अक्सर ऐसा ही सवाल चर्चा करते थे: fixed curved Duplo train tracks के set के साथ कितने अलग-अलग closed-loop track layouts बनाए जा सकते हैं
straight sections को आम तौर पर ignore किया जा सकता है, क्योंकि parallel loops के दोनों तरफ एक-एक जोड़ा जोड़ा जा सकता है। हालांकि उस pattern को तोड़ने वाला एक दिलचस्प triangle shape भी है
मेरे दोस्त ने सचमुच solutions खोजने वाला program भी बनाया था, और वह कुल मिलाकर ठीक चलता था और दिलचस्प layouts generate करता था। switches वह आखिर तक add नहीं कर पाया
दो track layouts समान हैं या नहीं, यह तय करना अक्सर मुश्किल होता था, और अंत में बात necklace problem की mathematics तक जा पहुँची: https://en.wikipedia.org/wiki/Necklace_problem
एक licensed mechanical engineer के तौर पर कहूँ तो, strictly speaking track “tension” में नहीं है। यह bending में है, और tension व compression का combination है
अगर और explanation चाहिए तो आगे बता सकता हूँ
linked site पर Duplo rails की detailed intro ज़्यादा दिलचस्प लगी
https://www.cailliau.org/Alphabetical/L/Lego/Duplo/Train/Rai...
बचपन में मेरे पास “new” और “old” दोनों तरह की black Duplo rails थीं। चार साल की उम्र में भी old black rails असुविधाजनक लगती थीं और new वाली मुझे कहीं ज़्यादा पसंद थीं, यह याद है
“gjryir frpgvbaf qb abg znxr na rknpg pvepyr, gurer vf n fznyy bireync, naq fb znxr n pv” जैसी चीज़ें
पाँच साल का बच्चा है, इसलिए BRIO लकड़ी की ट्रेन ट्रैक को अक्सर कई तरह की configurations में जोड़ता रहता हूँ
जब बच्चा ट्रैक आगे बढ़ाता है, तो मैं आम तौर पर कुछ कदम पीछे से चुपचाप layout को ठीक कर देता हूँ ताकि वह ज़्यादा constrain न हो जाए। यह सरल है, लेकिन काफी मज़ेदार problem-solving बन जाता है, और बच्चे के साथ समय बिताने का मौका भी अच्छा लगता है
यह देखने में अच्छा लगता है और हाथ में भी अच्छा feel देता है। ट्रेन धीमी है लेकिन torque ज़्यादा है, इसलिए अनुभव में एक तरह का “वज़न” महसूस होता है। यह कई remote-control खिलौनों से अलग है, जो अपने size के हिसाब से बहुत तेज़ भागते हैं और carpet या छोटी ऊँचाइयों पर अटकते रहते हैं
मुझे भी पसंद है, लेकिन बच्चों की तुलना में मुझे थोड़ा बेहतर दिख जाता है कि कहाँ tension पड़ रही है, इसलिए उन हिस्सों को ठीक करने की कोशिश करता हूँ
इसका मतलब है कि पूरे system में जरूरी straight track lengths की किस्में सिर्फ छोटी पूर्णांक संख्या तक सीमित हैं। वहीं TrackMaster में इससे कहीं ज़्यादा चाहिए
जानना चाहता हूँ कि क्या किसी ने BRIO ट्रैक खुद mill करके बनाए हैं। शायद standard parts से न बनने वाली अजीब shapes बनाने के लिए
मैंने BRIO ट्रैक के साथ compatible एक banana vehicle बनाया है, लेकिन track बनाने की कोशिश अभी नहीं की
गणितीय analysis और भी सरल हो सकता है। हर track piece को 2D vector मानकर सबको जोड़ दें। बिना tension वाले layout में sum (0, 0) होगा
tension के measure के रूप में position mismatch समान रूप से बँटा हुआ मानकर, इसे सभी vectors के average से model किया जा सकता है। इसलिए वही displacement कम pieces में हो तो उसका अर्थ ज़्यादा बड़ा होगा
ऐसा लग सकता है कि rotation को ignore किया जा रहा है, लेकिन असल में वह शामिल है। track piece का effective vector current direction और उस piece द्वारा जोड़ा गया displacement, दोनों को साथ दिखाता है। code में model करें तो cursor के पास direction angle और (x, y) position होंगे
संबंधित गणित में polygon के exterior angles का sum 360 degrees होता है, इसलिए 360 degrees से दूरी को एक और measure बनाया जा सकता है। इस case में यह उपयोगी नहीं है, लेकिन complex analysis का winding number भी याद आता है। यह किसी curve के साथ locally चलते हुए समझने का तरीका है कि “inside” कौन-सी तरफ है और curve किसी खास point को कितनी बार घेरता है
कोई हल्का self-intersecting shape बनाकर उस हिस्से को tension state में धकेला जा सकता है, और complementary section पहले हिस्से के negative के रूप में add हो सकता है, लेकिन खुद self-intersection न रखता हो
इसलिए right-bending tracks की संख्या left-bending tracks से 360/30 = 12 ज़्यादा होनी चाहिए, या उल्टा। गिनना तो पड़ेगा, लेकिन track के साथ चलते हुए +1 या -1 जोड़ने की आदत जल्दी पड़ सकती है। अंत में 12 आए तो perfect है, और 12 से दूरी tension estimate होगी
दूसरे StackExchange forums अच्छे हैं। ऐसे सवाल और उनसे निकलने वाले जवाब शानदार होते हैं
कई सालों में aviation, user experience, mathematics में बढ़िया discussions देखे हैं, और लंबे detailed answers में कई रोचक insights थे। कुछ घंटे पहले भी Latin वाला एक post HN पर आया था
लेकिन कम से कम मेरे लिए Stack Overflow अब वैसा नहीं रहा। पहले मैं सवाल भी पूछता था और जवाब भी देता था, लेकिन कुछ बदल गया। लगा कि बहुत ज़्यादा बारीकी से moderation करने वालों ने इसे अपने कब्ज़े में ले लिया है, और अब मैं मुश्किल से ही participate करता हूँ
मैं समझता हूँ कि खतरनाक weak point जुड़े हुए tracks में से एक की joint pin neck होती है
Duplo में दोनों links पर key pin और hole होते हैं। बहुत ज़्यादा misaligned स्थिति में key के एक side पर extra lateral pressure पड़ सकता है, जिससे वह deform या टूट सकती है
हालांकि ऐसा गंभीर tension ज़्यादातर तब पैदा होने की संभावना है जब last joint को जबरन जोड़ने या lock करने की कोशिश की जाए। बच्चा ऐसा तब कर सकता है जब parent पास में यह supervise न कर रहा हो कि assembly possible है या नहीं। parent को पता चले तब तक शायद देर हो चुकी हो, या फिर यह सफल हो चुका हो और ठीक करने की ज़रूरत न बची हो
अगर key neck टूटती है तो समझिए उसका यही होना तय था। कोई बड़ी बात नहीं। दूसरी key अभी भी joint को पकड़े रखेगी। बस अगर सबक न लिया तो वह section और weak link बन जाएगा
अगर किसी तरह उसे loop में ठूँस दिया है तो ठीक है, locomotive चलाइए। train cars अगर जबरन खुले gap या twisted section पर पलटती नहीं हैं, तो चलती रहें; नहीं तो adjust करें या फिर से बनाएँ
बचपन में मैं track के साथ-साथ गिनता था। 0 से शुरू करता, track left मुड़ता तो 1 जोड़ता, right मुड़ता तो 1 घटाता
जवाब ±12, ±24 जैसी values होना चाहिए था। क्योंकि 12 pieces से एक circle बनता है
मुझे लगता है कि loop तोड़कर starting piece और ending piece के बीच का offset देखें तो tension पता चल सकता है। यह assumption है कि surface friction इतना कम है कि pieces हिल सकें
puzzle solution के रूप में हर piece type को end offset और अगले piece के connection angle assign करें, (0, 0) coordinates से शुरू करें और pieces पर चलते हुए last piece की position update करें, फिर starting और ending pieces के बीच offset देखें
result answer की image जैसा दिखेगा। हालांकि offset को minimize करने के लिए track update करना ज़्यादा कठिन है
उस समय related pieces को adjust करके, अक्सर और बड़ी हो चुकी gap को बंद किया जा सकता है। Layout कुछ Wallace and Gromit के The Wrong Trousers वाले train chase scene जैसा था
अगर tension है तो टूटे हुए हिस्से के पास track ends अलग हो जाएँगे, लेकिन पूरी चीज़ हिलेगी, इसकी कल्पना करना मुश्किल है
“मुझे पता है कि एक piece निकालकर फिर से लगाते हुए इसे सीधे महसूस किया जा सकता है”
चिकने और सपाट floor पर assemble करके shuffleboard powder छिड़कना भी एक तरीका हो सकता है