এটি xkcd # 153 এর উপর ভিত্তি করে ।
একটি প্রোগ্রাম বা নামকৃত ফাংশন তৈরি করুন যা 2 টি প্যারামিটার নেয়, যার প্রতিটি স্ট্রিং বা বাইট বা অক্ষরের তালিকা বা অ্যারে। দ্বিতীয় প্যারামিটারে কেবল অক্ষর lrfu(বা সমতুল্য ASCII বাইটস) থাকবে। এটি প্রথম প্যারামিটারের দ্বারা প্রতিনিধিত্ব করা কিছুটা ক্রম অনুসারে নির্দেশের একটি সিরিজ হিসাবে ব্যাখ্যা করা উচিত।
সম্পাদিত প্রক্রিয়াজাতকরণ অবশ্যই নিম্নলিখিত সমতুল্য হতে হবে:
- প্রথম প্যারামিটারকে প্রতিটি চরিত্রের বিটগুলি সমন্বিত করে গঠিত একক বিটস্ট্রিংয়ে রূপান্তর করুন ((-বিট ASCII এর মধ্যে একটি হিসাবে ব্যাখ্যা করা, একটি 8-বিট প্রসারিত ASCII, বা একটি মানক ইউনিকোড এনকোডিং)। উদাহরণস্বরূপ যদি প্রথম প্যারামিটারটি হয়
"AB"তবে এটি10000011000010(7-বিট) এর মধ্যে একটি0100000101000010(8-বিট বা ইউটিএফ -8)00000000010000010000000001000010, বা01000001000000000100001000000000(দুটি সমাপ্তির মধ্যে ইউটিএফ -16) ইত্যাদি হবে etc. - দ্বিতীয় প্যারামিটারের প্রতিটি চরিত্রের জন্য, যথাযথভাবে নির্দেশাবলী কার্যকর করুন:
lবিটস্ট্রিং বাম দিকে ঘোরান। যেমন10000011000010হয়ে যায়00000110000101।rবিটস্ট্রিং ডানদিকে ঘোরান। যেমন10000011000010হয়ে যায়01000001100001।fবিটস্ট্রিংয়ে প্রতিটি বিট উল্টে (বা বিপরীতগুলি) যেমন10000011000010হয়ে যায়01111100111101।uবিটস্ট্রিং বিপরীত। যেমন10000011000010হয়ে যায়01000011000001।
- বিটস্ট্রিংকে ASCII স্ট্রিংয়ে রূপান্তর করুন যা প্রতি বিটে একটি অক্ষর ব্যবহার করে। যেমন
10000011000010হয়ে যায়"10000011000010"। এটি কারণ 7/8 বিটের সমস্ত সেটগুলিতে একটি চরিত্র নির্ধারিত হয় না।
উদাহরণ (পাইথনে):
>>> f("b", "rfu")
01110011
এটি "b"তার 8-বিট ASCII বাইনারি উপস্থাপনায় রূপান্তরিত করে 01100010, ডানদিকে ঘুরিয়ে দেয় ( 00110001) প্রতিটি বিট ( 11001110) বিভক্ত করে তোলে এবং এটি বিপরীত হয় ( 01110011)।
নমনীয়তা
অন্যান্য অক্ষরের অক্ষরের পরিবর্তে ব্যবহার করা যেতে পারে l, r, f, এবং u, কিন্তু তারা স্পষ্টভাবে নথিভুক্ত করা আবশ্যক।
স্কোরবোর্ড
নিম্নলিখিত কোড স্নিপেট তৈরি করার জন্য @ অপ্টিমাইজারকে ধন্যবাদ । ব্যবহার করতে, "কোড স্নিপেট দেখান" ক্লিক করুন, নীচে স্ক্রোল করুন এবং "কোড স্নিপেট চালান" ক্লিক করুন।
"rrfrburb"? এছাড়াও, যখন কোনও বিট পরিবর্তন করে বা বিটগুলি বিপরীত হয়, প্রতিটি স্বতন্ত্র চিঠির জন্য কি এটি পুরোপুরি স্ট্রিং করে? আরও পরীক্ষার কেসগুলি এটি পরিষ্কার করে দেবে।