जाप , 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
इसे समायोजित करने के लिए किसी और चीज़ के अंत में बदलें । ध्यान दें: यह फ़ंक्शन संभवतः केवल फ़ायरफ़ॉक्स में काम करता है।) आप यहां 100 के तहत सभी प्रत्ययों की एक सूची पा सकते हैं ।
वैसे भी, वहाँ से यह वर्णमाला के प्रत्येक अक्षर के लिए शब्द खोजने का एक काम है जिसमें सबसे लंबे समय तक प्रत्यय है ozinesses
। मैंने ऐसा करने के लिए एक जाप स्क्रिप्ट लिखी , साथ ही मेरे लिए आवश्यक उपसर्गों को संपीड़ित किया और मुझे बताया कि परिणामी कार्यक्रम कब तक होगा। (आपको उद्धरण चिह्नों के बीच शब्द सूची को मैन्युअल रूप से चिपकाना होगा।)
यह स्पष्टीकरण शायद कुछ भ्रामक था, इसलिए कृपया किसी भी प्रश्न को पूछने के लिए स्वतंत्र महसूस करें।