बीन मशीन या प्लिन्को / पचिनको गेम के समान एक तंत्र के इस ASCII संस्करण पर विचार करें :
O
^
\ ^
^ ^ \
\ ^ / ^
U U U U U
1 2 3 4 5
O
एक गेंद है कि नीचे गिर जाता है है।
- जब यह एक हिट करता है
^
, तो 50-50 मौका होता है यह बाएं या दाएं जाएगा। - जब यह एक हिट करता है
/
, तो यह हमेशा बाएं जाता है। - जब यह हिट होता है
\
, तो यह हमेशा सही होता है।
गेंद अंत में U
नीचे गिने कुंडों में से एक में गिरती है । सवाल यह है कि प्रत्येक गर्त में यह क्या संभावना है?
इस विशेष मामले के लिए, संभावनाओं हैं 0.0
, 0.1875
, 0.5625
, 0.125
, और 0.125
क्रमश: 5 के माध्यम से troughs 1 के लिए।
यहाँ 5. संभावनाओं हैं बजाय 3 troughs के साथ एक और उदाहरण 0.5
, 0.5
और 0.0
:
O
/
^ ^
U U U
1 2 3
इस चुनौती में हम इस समस्या को किसी भी फैशन में स्थापित परतों की संख्या के साथ एक तंत्र के लिए सामान्य करेंगे।
चुनौती
एक प्रोग्राम या फ़ंक्शन लिखें जो तंत्र के पिरामिड संरचना के एएससीआईआई प्रतिनिधित्व में लेता है। (स्टड / कमांड लाइन / फंक्शन arg के माध्यम से इनपुट।)
आप मान सकते हैं कि यह रिक्त स्थान के साथ आता है जो इसे उचित आकार में रखता है, जैसे
^
\ ^
^ ^ \
\ ^ / ^
या आप मान सकते हैं कि यह बिना किसी स्थान के साथ आता है, जैसे
^
\^
^^\
\^/^
(यदि वांछित है, तो आप मान सकते हैं कि एक अनुगामी न्यूलाइन और / या अनुगामी रिक्त स्थान के कुछ सुसंगत पैटर्न हैं।)
इनपुट पिरामिड संरचना में शून्य सहित किसी भी स्तर (उर्फ लाइनें) हो सकती हैं। प्रत्येक स्तर पर एक और है ^
, /
या \
पिछले की तुलना में, और देखते हैं levels + 1
तल पर नली (जो इनपुट का हिस्सा नहीं हैं)।
आपको प्रोग्राम / फ़ंक्शन को उन संभावितताओं की सूची को प्रिंट / वापस करना होगा जो गेंद प्रत्येक गर्त में (भूमि क्रम में सबसे निचले गर्त से दाएं गर्त में) है। ये फ़्लोटिंग पॉइंट मान होने चाहिए, जो मुद्रित होने पर, कम से कम 3 दशमलव स्थान हों (सुपरफ़्लोस ज़ीरोस या दशमलव अंक की आवश्यकता नहीं है; के 1
लिए ठीक है 1.000
, के .5
लिए ठीक है 0.500
, आदि)। यदि आपने एक फ़ंक्शन लिखा है, तो आप मानों को प्रिंट कर सकते हैं या फ़्लोट्स की एक सूची / सरणी लौटा सकते हैं।
कोई भी उचित मुद्रित सूची प्रारूप ठीक है। जैसे 0.5 0.5 0.0
, [0.5 0.5 0.0]
, [0.5, 0.5, 0.0]
, {0.5, 0.5, 0.0}
, या 0.5\n0.5\n0.0
सब ठीक हो जाएगा।
उदाहरण
0 के स्तर: (एक तुच्छ नीचे फोड़े U
)
इनपुट: [no input/empty string given]
आउटपुट:1.0
1 स्तर:
इनपुट: ^
आउटपुट:0.5 0.5
इनपुट: /
आउटपुट:1.0 0.0
इनपुट: \
आउटपुट:0.0 1.0
2 स्तर: (ऊपर दूसरा उदाहरण)
इनपुट:
/
^ ^
आउटपुट: 0.5 0.5 0.0
3 स्तर:
इनपुट:
^
^ ^
^ ^ ^
आउटपुट: 0.125 0.375 0.375 0.125
इनपुट:
\
/ \
/ / \
आउटपुट: 0.0 0.0 0.0 1.0
4 स्तर: (पहला उदाहरण ऊपर)
इनपुट:
^
\ ^
^ ^ \
\ ^ / ^
आउटपुट: 0.0 0.1875 0.5625 0.125 0.125
7 स्तर:
इनपुट:
^
/ ^
^ ^ /
/ \ / \
^ ^ / ^ \
^ \ ^ \ / ^
\ ^ ^ ^ \ ^ /
आउटपुट: 0.0 0.09375 0.28125 0.4375 0.1875 0.0 0.0 0.0
स्कोरिंग
बाइट्स जीत में सबसे छोटा जवाब। टाईब्रेकर पहले की पोस्ट है।