যদি থামার সমস্যাটি খুব অস্পষ্ট হয় তবে এটিকে এভাবে ভাবুন।
একটি গাণিতিক সমস্যা নিন যা সমস্ত ধনাত্মক পূর্ণসংখ্যার n এর জন্য সত্য বলে মনে করা হয় তবে প্রতিটি এন এর ক্ষেত্রে এটি সত্য প্রমাণিত হয়নি । একটি ভাল উদাহরণ গোল্ডব্যাচের অনুমান হবে , যে কোনও ধনাত্মক এমনকি পূর্ণসংখ্যার চেয়ে দুটি সংখ্যক দুটি প্রধান গুণফলের যোগফল দ্বারা প্রতিনিধিত্ব করা যেতে পারে। তারপরে (উপযুক্ত বিগিন্ট লাইব্রেরি সহ) এই প্রোগ্রামটি চালান (সিউডোকোড নীচে):
for (BigInt n = 4; ; n+=2) {
if (!isGoldbachsConjectureTrueFor(n)) {
print("Conjecture is false for at least one value of n\n");
exit(0);
}
}
বাস্তবায়নের isGoldbachsConjectureTrueFor()
পাঠকের জন্য অনুশীলন হিসাবে রেখে দেওয়া হয়েছে তবে এই উদ্দেশ্যে কম সমস্ত প্রাইমগুলির চেয়ে কম সাধারণ পুনরাবৃত্তি হতে পারেn
এখন, যৌক্তিকভাবে উপরেরটি অবশ্যই এর সমতুল্য হতে হবে:
for (; ;) {
}
(অর্থাত্ একটি অসীম লুপ) বা
print("Conjecture is false for at least one value of n\n");
যেহেতু গোল্ডবাচের অনুমানটি অবশ্যই সত্য বা সত্য নয়। যদি কোনও সংকলক সর্বদা ডেড কোডটি নির্মূল করতে পারে তবে অবশ্যই উভয় ক্ষেত্রেই এখানে অপসারণের জন্য ডেড কোড অবশ্যই থাকবে। যাইহোক, খুব কম সময়ে এটি করার ক্ষেত্রে আপনার সংকলককে নির্বিচারে শক্ত সমস্যাগুলি সমাধান করা দরকার। আমরা সমস্যার প্রদান করতে পারে provably হার্ড এটা (যেমন দ্বারা NP-সম্পূর্ণ সমস্যা) সমাধান করতে যা নির্ধারণ কোডের বিট নিষ্কাশন করতে হবে যে। উদাহরণস্বরূপ যদি আমরা এই প্রোগ্রামটি গ্রহণ করি:
String target = "f3c5ac5a63d50099f3b5147cabbbd81e89211513a92e3dcd2565d8c7d302ba9c";
for (BigInt n = 0; n < 2**2048; n++) {
String s = n.toString();
if (sha256(s).equals(target)) {
print("Found SHA value\n");
exit(0);
}
}
print("Not found SHA value\n");
আমরা জানি যে প্রোগ্রামটি "খুঁজে পাওয়া SHA মান" বা "পাওয়া যায়নি SHA মান" (বোনাস পয়েন্টগুলি যদি আপনি আমাকে কোনটি সত্য তা বলতে পারেন) মুদ্রণ করবে। তবে, একটি সংকলক যুক্তিসঙ্গতভাবে অপ্টিমাইজ করতে সক্ষম হবেন যা 2 ^ 2048 পুনরাবৃত্তির ক্রম গ্রহণ করবে। এটি প্রকৃতপক্ষে একটি দুর্দান্ত অপটিমাইজেশন হবে কারণ আমি পূর্বাভাস দিয়েছি যে উপরের প্রোগ্রামটি (বা হতে পারে) মহাবিশ্বের তাপের মৃত্যু পর্যন্ত অপটিমাইজেশন ছাড়াই কিছু ছাপানোর চেয়ে চলবে।