একটি প্রক্রিয়া একটি অনুরূপ এই হওয়া ASCII সংস্করণ বিবেচনা করুন শিম মেশিন বা plinko / পাচিনকো গেম:
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 মাধ্যমে পাত্র 1।
এখানে 5. সম্ভাব্যতা হয় পরিবর্তে 3 পাত্র সাথে অন্য উদাহরণ 0.5
, 0.5
এবং 0.0
:
O
/
^ ^
U U U
1 2 3
এই চ্যালেঞ্জের মধ্যে আমরা কোনও পদ্ধতিতে কোনও ফ্যাশন সেটআপ করে এমন সংখ্যক স্তরগুলিকে এমন একটি ব্যবস্থায় এই সমস্যাটিকে সাধারণীকরণ করব।
চ্যালেঞ্জ
এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা প্রক্রিয়াটির পিরামিড কাঠামোর ASCII প্রতিনিধিত্ব করে। (স্টিডিন / কমান্ড লাইন / ফাংশন আর্গ মাধ্যমে ইনপুট)
আপনি হয় ধরে নিতে পারেন যে এটি ফাঁকা স্থানগুলির সাথে এটি যথাযথ আকারে স্থাপন করেছে, যেমন
^
\ ^
^ ^ \
\ ^ / ^
অথবা আপনি ধরে নিতে পারেন এটি কোনও ফাঁকা জায়গাতেই আসে না, যেমন
^
\^
^^\
\^/^
(যদি ইচ্ছা হয় তবে আপনি ধরে নিতে পারেন যে সেখানে একটি অনুবর্তনযোগ্য নতুন লাইন এবং / অথবা স্থানের পিছনে কিছু নিয়মিত প্যাটার্ন রয়েছে))
ইনপুট পিরামিড কাঠামোতে শূন্য সহ কয়েকটি স্তরের (ওরফে লাইন) থাকতে পারে। প্রত্যেক স্তরের প্রথমে এক আরো আছে ^
, /
অথবা \
শেষ চেয়ে, এবং আছে 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
২ স্তর: (উপরে দ্বিতীয় উদাহরণ)
ইনপুট:
/
^ ^
আউটপুট: 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
স্কোরিং
বাইটস মধ্যে সংক্ষিপ্ত উত্তর। টাইব্রেকার আগের পোস্ট।