মন্তব্য থেকে ডেভিড রিচার্বির উদ্ধৃতি:
{E,T}∗
{A,I,M,N}∗{E,T}?
এখানে কিছু জাভাস্ক্রিপ্ট যা আপনাকে .
এবং এর একটি স্ট্রিংয়ের সমস্ত সম্ভাব্য ব্যাখ্যার কথা বলবে -
। দৈর্ঘ্যের 22 টি দৈর্ঘ্যের স্ট্রিংগুলি এক সেকেন্ডের নীচে চলে, তবে এর চেয়েও উচ্চতর কিছু ধীরে ধীরে ধীরে ধীরে শুরু হতে শুরু করে - আমি উদাহরণস্বরূপ, এটি দিয়ে হেল্লো ওয়ার্ল্ডকে ডিকোড করার চেষ্টা করব না। আপনি আপনার ব্রাউজারে একটি জাভাস্ক্রিপ্ট কনসোল খুলতে পপ করতে পারেন, এটিকে আটকান এবং তারপরে কল করুন, উদাহরণস্বরূপ decode('......-...-..---')
,। (এই উদাহরণে, এন্ট্রি # 2446 হ'ল "HELLO" স্ট্রিং)
var decode = function(code) {
var cache = {
'0': ['']
};
for(var start = 0;start < code.length;start++) {
for(var len = 1;len < 6;len++) {
if(start + len > code.length) continue;
if(!cache[start + len]) cache[start + len] = [];
var curCode = code.slice(start, start + len);
if(dict[curCode]) {
for(var i_start = 0;i_start < cache[start].length;i_start++) {
cache[start + len].push(cache[start][i_start] + dict[curCode]);
}
}
}
}
return cache[code.length];
};
var dict = {
'.-': 'A',
'-...': 'B',
'-.-.': 'C',
'-..': 'D',
'.': 'E',
'..-.': 'F',
'--.': 'G',
'....': 'H',
'..': 'I',
'.---': 'J',
'-.-': 'K',
'.-..': 'L',
'--': 'M',
'-.': 'N',
'---': 'O',
'.--.': 'P',
'--.-': 'Q',
'.-.': 'R',
'...': 'S',
'-': 'T',
'..-': 'U',
'...-': 'V',
'.--': 'W',
'-..-': 'X',
'-.--': 'Y',
'--..': 'Z',
'.----': '1',
'..---': '2',
'...--': '3',
'....-': '4',
'.....': '5',
'-....': '6',
'--...': '7',
'---..': '8',
'----.': '9',
'-----': '0'
};
সত্যিকারের শব্দের কেবল স্ট্রিংগুলিতে ছাঁটাই করার কোডটি কিছুটা দীর্ঘ। তাই আমি এটি এখানে রেখেছি । এটি node.js এর অধীনে চলে এবং একটি ফাইল প্রত্যাশা করে /usr/share/dict/words-2500
। আমি যে অভিধানটি ব্যবহার করছি তা এখানে পাওয়া যাবে । এটি নিষ্পাপ নয় - এটি যেমন যায় তেমন ছাঁটাই করে , তাই এটি বৃহত্তর ইনপুটগুলিতে আরও দ্রুত চলে ।
অভিধানটিতে একটি শীর্ষ-2500 শব্দের তালিকা রয়েছে যা আমি ইন্টারনেটে কোথাও খুঁজে পেয়েছি, বিয়োগ 1-, 2- এবং 3- অক্ষরের সংমিশ্রণ যা আমি শব্দের নয় বলে মনে করেছি। এই অ্যালগরিদমটি বেছে নেওয়ার জন্য খুব বেশি সংক্ষিপ্ত শব্দ থাকার ক্ষেত্রে সংবেদনশীল এবং আপনি যদি প্রতিটি স্বতন্ত্র অক্ষরটিকে একটি শব্দ হিসাবে (আমি আপনার দিকে তাকাচ্ছি), অনুমতি দেয় তবে তা ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে কমে যায় /usr/share/dict/words
।
শব্দের সংখ্যার উপর ভিত্তি করে বাছাই করে অ্যালগরিদম শেষ হয়, সুতরাং "আকর্ষণীয়" টিরা আশা করি শীর্ষে থাকবে। এটি দুর্দান্তভাবে কাজ করে HELLO WORLD
, এক সেকেন্ডের অধীনে চলতে এবং প্রত্যাশিত বাক্যটিকে প্রথম হিট হিসাবে প্রত্যাবর্তন করে। এ থেকে আমি আরও শিখেছি যে DATA SCIENTIST
(কেবলমাত্র অন্য একটি বাক্যাংশ যা আমি চেষ্টা করেছি) একইভাবে মুরস কোডগুলি NEW REAL INDIA
।
সম্পাদনা করুন: আমি আরও কয়েক মিনিটের জন্য আরও আকর্ষণীয় বিষয়গুলি অনুসন্ধান করেছি। শব্দগুলি SPACES
এবং SWITCH
মুরসাগ্রামগুলি। এখনও অবধি এগুলি আমার সর্বাধিক দীর্ঘ একক-শব্দ জুটি।