এই প্রোগ্রামটি [শিক্ষার্থীর উত্তর, সঠিক উত্তর] একজোড়া ইনপুট হিসাবে গ্রহণ করে এবং একটি অনুপস্থিত উত্তর নির্দেশ করতে ফাঁকা স্থান ব্যবহার করে।
কী হচ্ছে তা ট্র্যাক রাখতে এই প্রোগ্রামটি কিছু উদ্ভট অভ্যন্তরীণ ইনপুট ফর্ম্যাটগুলি ব্যবহার করে, তাই আমরা একবারে এই পদক্ষেপ নেব।
Z
এটি ইনপুট স্থানান্তর করে, তাই আমরা প্রতিটি প্রশ্নের জন্য একটি করে 25 টি উপাদানের একটি তালিকা দিয়ে শেষ করব; প্রতিটি উপাদান ফর্ম [শিক্ষার্থীর উত্তর, সঠিক উত্তর] এর হয়। আমরা এই ফর্মের একটি উপাদান একটি মূলধনী চিঠি দিয়ে নির্দেশ করব; Aপ্রশ্ন 1 এর Bজন্য, প্রশ্ন 2 এর জন্য এবং আরও অনেক কিছু। উত্তরগুলি বর্তমানে সংরক্ষণ করা হচ্ছে
ABCDEFGHIJKLMNOPQRSTUVWXY
m0
এটি একটি "বৃহত্তর প্যালিনড্রোম" অপারেশন; আমরা বর্তমান মানটির বিপরীতটিকে মান হিসাবে সংযোজন করি, ফলন করে:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ṁ135
ṁ(ছাঁচ) অপারেটর একটা সংখ্যা না, কিন্তু এই প্রেক্ষাপটে, এটা কার্যকরভাবে বারবার নিজেই বর্তমান মান সংযোজন দ্বারা উত্পাদিত অসীম তালিকার প্রথম 135 উপাদান লাগে। এটি আমাদের নীচে দেয় (যা আমি সুবিধার জন্য 50 টি উপাদানের গ্রুপে বিভক্ত হয়েছি; এটি অভ্যন্তরীণভাবে কেবল 135 জোড়ার একটি তালিকা):
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
µ;
µঅনুপস্থিত ক্রিয়াকলাপগুলির জন্য বর্তমান মানটিকে নতুন ডিফল্ট হিসাবে সেট করে। এরপরে আমরা তত্ক্ষণাত্ একটি বিল্টিন দেখি যা একটি অপেরাড মিস করে; ;সংযোজন, কিন্তু আমরা কী যুক্ত করতে হবে তা নির্দিষ্ট করে নেই। ফলস্বরূপ, বর্তমান মানটি সর্বশেষের মান হিসাবে সংযুক্ত হয় µ(যা বর্তমান মানও) যা আমাদের নীচের 270-উপাদানগুলির বর্তমান মান দেয়:
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBA
ABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQPABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNO
PQRSTUVWXYYXWVUTSRQP
t€⁶
মনে রাখবেন উপরের সমস্ত মূল বর্ণগুলি [শিক্ষার্থীর উত্তর, সঠিক উত্তর] এর জোড়া উপস্থাপন করে। t€⁶অপারেশন প্রতিটি (চালু পরিচালনা €মোছাগুলিকে () যুগল, এবং t) স্থান ( ⁶) যুগল উভয় দিক থেকে (অর্থাত কোনো স্থান যে যুগল দেখা যায়)। সুতরাং আমাদের কাছে এখনও অনেক পুনরাবৃত্তি সহ ২0০ টি প্রশ্নের একই সংশ্লেষিত তালিকা রয়েছে তবে তারা ফর্মের [সঠিক উত্তর] (শিক্ষার্থীর উত্তর দেয়নি) বা [শিক্ষার্থীর উত্তর, সঠিক উত্তর] (শিক্ষার্থী উত্তর দিয়েছে)।
E€’
E€’অপারেশন প্রতিটি (চালু পরিচালনা €ব্যবহারের কারণে) উপাদান, এবং, E, 1 উপাদান প্রতিস্থাপন যদি সব উপাদান সমান (অর্থাত ছাত্র উত্তর বা প্রশ্ন ঠিক করা হয়নি), অথবা 0 সব যদি না উপাদানগুলি সমান (যেমন শিক্ষার্থী উত্তর দিয়েছে তবে প্রশ্নটি ভুল পেয়েছে)। এখানে ব্যবহারের ’ফলে নম্বর পরিবর্তন হয় যার অর্থ আমরা এখন যথাক্রমে -1 বা 0 ব্যবহার করি। আমি এই নতুন ধরণের উপাদানটির জন্য ছোট হাতের অক্ষর ব্যবহার করব, যা একটি উত্তরের জন্য -1 ব্যবহার করে যা শাস্তিযোগ্য হবে যদি এটি দণ্ড-যোগ্য প্রশ্নে থাকে, বা 0 অনুপস্থিত বা সঠিক উত্তরের জন্য:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqp
;E€
আমরা উভয় E€এবং এর ;আগেও দেখেছি ; আমরা বর্তমান মানটিতে কিছু সংযোজন করছি, এবং আমরা সমস্ত উপাদান সমান হলে 1 এর ফর্ম্যাট ব্যবহার করছি, বা কিছু কিছু আলাদা হলে 0 (এবার নয় ’!)। এখানে একটি অনুপস্থিত অপরেন্ড রয়েছে, সুতরাং আমরা সর্বশেষ হিসাবে µ(যেমন পদক্ষেপ 3 এর আউটপুট) মানটি ব্যবহার করি । পদক্ষেপ 3 এর পিছনে, আমরা উপাদানগুলি থেকে স্পেস মুছতে পারি নি, সুতরাং আমাদের কাছে একটি সঠিক উত্তরের জন্য 1 বা একটি ভুল বা অনুপস্থিত উত্তরের জন্য 0 থাকবে (কারণ কোনও স্থান সঠিক উত্তরটির সাথে মেলে না)। এখন থেকে, আমি এই 1 = সঠিক, 0 = ভুল / হারিয়ে যাওয়া ফর্ম্যাটের জন্য বড় অক্ষর ব্যবহার করব এবং 0 = সঠিক / নিখোঁজ, -1 = ভুলের জন্য ছোট হাতের অক্ষর ব্যবহার করব। ফলস্বরূপ মানটিতে 405 টি উপাদান রয়েছে এবং এটির মতো দেখতে:
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqponmlkjihgfedcba
abcdefghijklmnopqrstuvwxyyxwvutsrqpabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqponmlkjihgfedcbaabcdefghijklmno
pqrstuvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQPONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVU
TSRQP
ṫ⁹
এখানে আমি আগে উল্লেখ করা আশ্চর্যজনক কাকতালীয়তা আসে। কোডটির এই বিট সম্পর্কে কথা বলার আগে আমি কোথায় গিয়েছিলাম তার স্টক নিতে চাই।
প্রতিটি বড় হাতের অক্ষর একটি সঠিক উত্তরের জন্য +1 উপস্থাপন করে; প্রথম 15 টি প্রশ্ন ( Aমাধ্যমে O) স্ট্রিংয়ে প্রতিটি বার 5 বার প্রদর্শিত হয় এবং সর্বশেষ 10 টি প্রশ্ন ( Pমাধ্যমে Y) প্রতিটি 6 বার প্রদর্শিত হয়। যে বিট সত্যিই যাদুকরী নয়; আমি যখন প্রোগ্রামটিতে আগে 135 নম্বরটি বেছে নিয়েছিলাম তখন আমি এটি সেভাবে ডিজাইন করেছি (যা 5 × 15 + 6 × 10) এবং এখানে ভাগ্যের একমাত্র স্ট্রোক 5 টি একটি বিজোড় সংখ্যা হিসাবে ঘটে (তাই এটি শেষ 10 প্রথম 10 টির চেয়ে অতিরিক্ত সময় উপস্থিত হওয়া প্রশ্নগুলি)। 15 চিঠি অবিলম্বে এই পূর্ববর্তী ধারণ pমাধ্যমে t(-1 শাস্তি প্রশ্ন) একবার, এবং uমাধ্যমে y(-2 শাস্তি প্রশ্ন) দুইবার। এটিও কাকতালীয় বিষয় নয়; কারণ আমরা ব্যবহার করেছিm0এর আগে, প্রশ্নগুলির অতিরিক্ত অনুলিপিগুলি ক্রমে ছিল PQRSTUVWXYYXWVUTSRQP, এবং পরবর্তী প্রশ্নগুলি স্বাভাবিকভাবেই সেই স্ট্রিংয়ের মাঝখানে উপস্থিত হবে (সুতরাং "অতিরিক্ত" প্রশ্নের শেষ 15 টি গ্রহণ করা প্রান্তগুলির নিকটবর্তীগুলিতে কম পুনরাবৃত্তি দেবে; এবং অবশ্যই, "অতিরিক্ত" প্রশ্নগুলি শেষ হওয়ার জন্য অবাক হওয়ার কিছু নেই)।
যেহেতু প্রতিটি ছোট হাতের অক্ষর একটি ভুল, অনুপস্থিত উত্তরের জন্য স্কোর থেকে 1 টি বিয়োগ করে এবং প্রতিটি বড় হাতের অক্ষর একটি সঠিক উত্তরের জন্য স্কোরের সাথে 1 যোগ করে, সুতরাং আমরা পেতে কেবল 135 + 15 = 150 উপাদানগুলি গ্রহণ করতে হবে প্রতিটি ধরণের উপাদান সঠিক সময়। একটি লিস্টের শেষে সাবস্ট্রিং পাওয়ার জন্য জেলির কমান্ডটি ṫ; তবে এটি আপনার প্রয়োজনীয় উপাদানগুলির সংখ্যা নির্দিষ্ট করে না, বরং আপনি যে প্রথম উপাদানটি চান তা সূচী করে। আমাদের এই মুহুর্তে 405 উপাদান রয়েছে, এবং 150 চাই, তাই আমাদের সূচী (405 - 150 + 1), বা 256 থেকে শুরু করতে হবে an একটি আশ্চর্যের কাকতালীয়ভাবে 256 এর অস্তিত্বের স্বতন্ত্র অষ্টির সংখ্যা হতে পারে, এবং এর ফলে রয়েছে জেলি একটি সংক্ষিপ্ত প্রতিনিধিত্ব (⁹)। এটি করার জন্য আমি খুব সামান্যই করতে পারি; চতুর্থ ধাপটি তালিকার শুরুতে আরও 135 উপাদান যুক্ত করেছে যাতে বৃত্তাকার সংখ্যাটি হিট করতে পারে, তবে আমার যে 135 উপাদান যুক্ত করতে হয়েছিল তা হ'ল (প্রোগ্রামের সেই মুহুর্তে সহজেই উপলব্ধ একটি মান) সত্যিই সুবিধাজনক ছিল, মূলত অন্য কোনও সংখ্যা এই পরিস্থিতিতে সম্পূর্ণ অপ্রয়োজনীয়।
অভ্যন্তরীণ মানটি এখন কেমন দেখাচ্ছে তা এখানে:
uvwxyyxwvutsrqpABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
ONMLKJIHGFEDCBAABCDEFGHIJKLMNOPQRSTUVWXYYXWVUTSRQP
S
অবশেষে, এখন আমরা প্রশ্নগুলি থেকে স্কোরের পরিবর্তনের একটি তালিকা পেয়েছি, আমাদের যা করতে হবে তা হল তাদের ব্যবহারের যোগফল S, এবং আমাদের কাজ শেষ।