জাপট , 85 বাইট
97
`...`£`...`hXiU°d}R
যেখানে ব্যাকটিকসের দুটি জোড়া আপাতদৃষ্টিতে এলোমেলো মুদ্রণযোগ্য এবং ছাপিয়ে যাওয়া অক্ষরগুলির স্ট্রিং উপস্থাপন করে। এটি অনলাইন চেষ্টা করুন! আউটপুট:
achinesses
boninesses
cozinesses
dozinesses
easinesses
fozinesses
gorinesses
hazinesses
ickinesses
jokinesses
keennesses
lazinesses
mazinesses
nosinesses
oozinesses
pipinesses
quadrantes
riminesses
sizinesses
tininesses
uglinesses
vainnesses
warinesses
xylotomies
yeomanries
zaninesses
ব্যাখ্যা
প্রাথমিক কৌশলটি হ'ল:
97 Set U to 97
`ch
on
...`£ }R Map each line X in this multiline string to:
U°d Take U.toCharCode() and increment U. ["a", "b", "c", ...]
Xi Prepend this to X. ["ach", "bon", "c", ...]
`cozinesses`h Overwrite this onto the beginning of "cozinesses".
["achinesses", "boninesses", "cozinesses", ...]
£ }R Rejoin with newlines and implicitly output.
আমি দেখেছি cozinesses
দিয়ে শুরু দ্বারা nesses
হিসাবে কিছু অন্যান্য উত্তর ব্যবহার করেছেন এবং বারবার পূর্ববর্তী চিঠি যে 26 অক্ষর অধিকাংশ মধ্যে হাজির খোঁজার। যেহেতু লোভী কৌশলগুলি প্রায়শই অনুকূল হয় না, তাই আমি পরে আসল অনুকূল শব্দটি খুঁজে পেতে একটি স্ক্রিপ্ট লিখেছিলাম:
alphabet="abcdefghijklmnopqrstuvwxyz".split``;
wordlist=alphabet.map(x=>[]);
document.body.innerText.split`\n`.slice(0,-1).map(x=>wordlist[x.charCodeAt()-97].push(x));
f=(q="",n=7,s=0,words=wordlist,z=n&&alphabet.map(x=>[x+q,words.map(y=>[y=y.filter(z=>z[n]==x),t+=0 in y][0],t=0),t]))=>n?z.filter(x=>x[2]>=Math.max(1,...z.map(x=>(x[2]-2)*2/3))).map(x=>f(x[0],n-1,s+26-x[2],x[1])).sort((a,b)=>a[1]-b[1])[0]:[q,s];
console.time("find optimal word");
console.log(f());
console.timeEnd("find optimal word");
(আমি এটি খেয়াল করি না যে এটি অবিশ্বাস্যভাবে কুৎসিত।
যাইহোক, 10-অক্ষরের শব্দের তালিকায় ব্রাউজার কনসোল চালানোর সময় , এই ফলাফলগুলি হয়
[ "ozinesses", 57 ]
57
অক্ষর একাধিক লাইন স্ট্রিং মধ্যে প্রদর্শিত করতে হবে যে সংখ্যা হচ্ছে। এটি আমার কম্পিউটারেও প্রায় 17 সেকেন্ড সময় নিয়েছে, তাই আপনি যখন এটি চালান তখন ধৈর্য ধরুন।
সাথে f=
লাইনটি প্রতিস্থাপন করে
f=(q="",n=9,s=0,words=wordlist,z=n&&alphabet.map(x=>[x+q,words.map(y=>[y=y.filter(z=>z[n]==x),t+=0 in y][0],t=0),t]))=>n?[for(x of z.filter(x=>x[2]>=Math.max(1,...z.map(x=>(x[2]-2)*2/3))))for(y of f(x[0],n-1,s+26-x[2],x[1]))y].sort((a,b)=>a[1]-b[1]).filter((x,i,a)=>x[1]<=a[0][1]+20):[[q,s]];
আপনি সর্বোত্তমটির 20 টি অক্ষরের মধ্যে সমস্ত প্রত্যয় পেতে পারেন। ( 20
এটিকে সামঞ্জস্য করার জন্য শেষে অন্যটি পরিবর্তন করুন something দ্রষ্টব্য: এই ফাংশনটি সম্ভবত ফায়ারফক্সে কাজ করে)) আপনি এখানে 100 এর নীচে সমস্ত প্রত্যয়গুলির একটি তালিকা পেতে পারেন here ।
যাইহোক, সেখান থেকে বর্ণমালার প্রতিটি অক্ষরের জন্য শব্দটির সন্ধান করা কেবলমাত্র একটি কাজ যার সাথে দীর্ঘতম প্রত্যয়টির সাথে মিল রয়েছে ozinesses
। এটি করার জন্য আমি একটি জাপট স্ক্রিপ্ট লিখেছিলাম , পাশাপাশি আমার জন্য প্রয়োজনীয় উপসর্গগুলি সংকুচিত করে দিয়েছি এবং ফলাফলের প্রোগ্রামটি আর কত দীর্ঘ হবে তা আমাকে জানান। (যদিও আপনাকে উদ্ধৃতি চিহ্নগুলির মধ্যে শব্দের তালিকাটি ম্যানুয়ালি পেস্ট করতে হবে))
এই ব্যাখ্যাটি সম্ভবত কিছুটা বিভ্রান্তিকর ছিল, তাই দয়া করে আপনার যে কোনও প্রশ্ন জিজ্ঞাসা করতে দ্বিধা বোধ করুন।