এই চ্যালেঞ্জটিতে আপনি 2 Ω ( টুমেগা হিসাবে অনুলিপি করা ) জন্য একটি দোভাষী লিখবেন , একটি ভাষা অসীম-মাত্রিক স্টোরেজ স্পেস সহ ব্রেনফাকের উপর looseিলে .ালা ভিত্তিক একটি ভাষা ।
ভাষা
2 Ω রাষ্ট্রের তিনটি টুকরা রয়েছে:
টেপ , যা বিট অসীম তালিকা, সব 0 সক্রিয়া একটি বামদিকের উপাদান, কিন্তু কোন ডানদিকের উপাদান রয়েছে।
স্মৃতি পয়েন্টার , যা একটি নন-নেগেটিভ পূর্ণসংখ্যা টেপ একটি উপাদান একটি সূচক হয় না। একটি উচ্চতর মেমরি পয়েন্টারটি ডানদিকে আরও একটি টেপ সেলকে বোঝায়; 0 এর একটি মেমরি পয়েন্টার বামতম উপাদানকে বোঝায়। মেমরি পয়েন্টারটি 0 থেকে শুরু করা হয়।
Hypercube , যা একটি ধারণার দিক হল ∞ -dimensional কোষের "বাক্সটি", যা প্রতিটি একটু 0 সক্রিয়া রয়েছে hypercube প্রস্থ শুধুমাত্র 2 কোষ যে মাত্রা বাঁধা হয়, কিন্তু মাত্রার অনন্ত সংখ্যা মানে কোষগুলি অগণনীয় ।
হাইপারকিউবে একটি সূচি হ'ল বিটের একটি অসীম তালিকা যা হাইপারকিউবের কোনও সেলকে বোঝায় (একইভাবে বিটের একটি সীমাবদ্ধ তালিকা সীমাবদ্ধ মাত্রার হাইপারক्यूबকে বোঝাতে ব্যবহার করা যেতে পারে)। যেহেতু টেপ বিটের একটি অসীম তালিকা, পুরো টেপটি সর্বদা হাইপারকিউবের কোনও উপাদানকে বোঝায়; এই উপাদানটিকে রেফারেন্ট বলা হয় ।
2 Ω 7 বিভিন্ন অক্ষরের মধ্যে অর্থ দেয়:
<
1. দ্বারা মেমোরি পয়েন্টার হ্রাস করে এটি 0 এর নীচে হ্রাস হ'ল সংজ্ঞায়িত আচরণ, সুতরাং আপনার এটি পরিচালনা করার দরকার নেই।>
1 দ্বারা মেমরি পয়েন্টার বৃদ্ধি করে।!
রিটার্ন এ বিট ফ্লিপ।.
বিপরীতে বিট আউটপুট।^
সেল সঙ্গে টেপ মেমরির পয়েন্টার দ্বারা প্রতি ইঙ্গিত এ বিট প্রতিস্থাপন বিপরীত প্রসঙ্গ এ বিট।[x]
কোডটি চালানx
যতক্ষণ না রেটরেটে বিট 1 হয়।
চ্যালেঞ্জ
আপনার কাজটি এমন একটি প্রোগ্রাম লেখা যা ইনপুট হিসাবে স্ট্রিং নেয় এবং সেই ইনপুটটিকে 2 Ω প্রোগ্রাম হিসাবে চালিত করে ।
এই কোড-গলফ, সুতরাং সংক্ষিপ্ততম বৈধ উত্তর (বাইটগুলিতে পরিমাপ করা) জিতেছে।
মন্তব্য
- আপনি ধরে নিতে পারেন যে প্রোগ্রামটি কেবলমাত্র অক্ষরগুলি
<>!.^[]
নিয়ে গঠিত এবং এটি[]
সঠিকভাবে নেস্ট করা হবে। - আপনার দোভাষী কেবলমাত্র সিস্টেমে উপলব্ধ মেমরির দ্বারা সীমাবদ্ধ হওয়া উচিত। এটি একটি যুক্তিসঙ্গত সময়ে নমুনা প্রোগ্রামগুলি চালাতে সক্ষম হওয়া উচিত।
নমুনা প্রোগ্রাম
মুদ্রণ 1:
!.
010 মুদ্রণ করুন:
.!.!.
চিরকাল মুদ্রণ করুন:
![!.!]
চিরকাল 0 টি মুদ্রণ করুন, বা চিরকাল 1 টি চাপ দেওয়া থাকলে !
:
[.]![!.!]
cat
প্রোগ্রাম লেখার আমন্ত্রণ : ইনপুট নেওয়ার কোনও নির্দেশ বলে মনে হচ্ছে না।
.
- একটি একক শূন্য প্রিন্ট করে এবং তারপরে বিদ্যমান; !^!.
- একক মুদ্রণ পরে প্রস্থান। আরও ভাল হবে যদিও। এই মুহুর্তে তাদের অবশ্যই যাচাই করতে অবশ্যই সাবমিশনগুলি বুঝতে হবে (এবং সেজন্য তাদের উজ্জীবিত করুন!)
[0,0,0,0,0,0,0...]
(যেমন !
প্রোগ্রামের শুরুতে উপস্থিতির উপস্থিতি )।
[.]![!.!]
সেই কক্ষটির মূল্য চিরকালের জন্য মুদ্রণ করতে পারেন
1
s এর সংখ্যা সর্বদা সীমাবদ্ধ থাকে। প্রকৃতপক্ষে, প্রাকৃতিক সংখ্যা এবং টেপ রাজ্যগুলির মধ্যে একটি মোটামুটি সহজ দ্বিধা রয়েছে (টেপ বিষয়বস্তুটিকে পিছনের দিকে বাইনারি সংখ্যা হিসাবে ব্যাখ্যা করুন), যা দেখায় যে হাইপারকিউব মূলত একটি অসীম 1D অ্যারে, একটি পূর্ণসংখ্যার পয়েন্টার মানটিতে বিট ফ্লিপ করে অ্যাক্সেস করা হয় পরিবর্তে, ব্রেইনফাকের মতো / কমতে থাকে।