শব্দের একটি দীর্ঘ শৃঙ্খলা নির্মাণ


17

এই চ্যালেঞ্জটি ইংরেজি শব্দের দীর্ঘতম শৃঙ্খলা সন্ধান করা যেখানে পরের শব্দের প্রথম 3 টি অক্ষর শেষ শব্দের শেষ 3 টি অক্ষরের সাথে মিলে যায়। আপনি লিনাক্স বিতরণে উপলব্ধ একটি সাধারণ অভিধান ব্যবহার করবেন যা এখানে ডাউনলোড করা যেতে পারে:

https://www.dropbox.com/s/8tyzf94ps37tzp7/words?dl=0

যার 99171 ইংরেজি শব্দ রয়েছে। যদি আপনার স্থানীয় লিনাক্স /usr/share/dict/wordsএকই ফাইল হয় (এতে md5sum == cbbcded3dc3b61ad50c4e36f79c37084 থাকে), আপনি এটি ব্যবহার করতে পারেন।

শব্দগুলি উত্তরে কেবল একবার ব্যবহার করা যেতে পারে।

সম্পাদনা: চিঠিগুলি অবশ্যই উপরের / লোয়ার কেস, অ্যাস্টোস্ট্রোফস এবং অ্যাকসেন্ট সহ মিলিত হবে।

একটি বৈধ উত্তরের একটি উদাহরণ: idea deadpan panoramic micra craftsman mantra traffic fiche যা স্কোর 8 হবে।

শব্দের দীর্ঘতম বৈধ চেইনের উত্তরটি বিজয়ী হবে। টাই হওয়ার ক্ষেত্রে প্রথম দিকের উত্তরটি জিতবে। আপনার উত্তরে আপনার পাওয়া শব্দের শৃঙ্খলা এবং (অবশ্যই) আপনি এটি লেখার জন্য প্রোগ্রামটি লিখেছেন।


এই ডেটাগুলি লোড করার জন্য কী কী উপায় রয়েছে?
হ্যাক্কেটো

উপরের ড্রপবক্স লিঙ্কটি থেকে আপনার শব্দের তালিকাটি ডাউনলোড করা উচিত, তারপরে আপনার সেরা উত্তরটি তৈরি করতে আপনার প্রোগ্রামটি দিয়ে এটি প্রক্রিয়া করুন।
লজিক নাইট 13

অ্যাকসেন্টগুলি কী ব্যাপার? এছাড়াও, তিনটি অক্ষরের চেয়ে সংক্ষিপ্ত শব্দগুলির সম্পর্কে কী বলা যায়?
কেএসএফটি

3 টির চেয়ে কম অক্ষরের শব্দ 3 অক্ষরের ম্যাচের নিয়মটি পূরণ করতে পারে না, তাই বাদ দেওয়া হয়। অক্ষর অবশ্যই অ্যাকসেন্ট এবং আপার / লোয়ার কেস সহ মিলবে।
লজিক নাইট

1
গ্রাফটি সম্পর্কে আমার বিশ্লেষণটি হ'ল কেবলমাত্র একটি অ-তুচ্ছ দৃ strongly়ভাবে সংযুক্ত উপাদান এবং সংকীর্ণ গ্রাফের দীর্ঘতম দৈর্ঘ্য 6.. এসসিসিতে প্রতিটি ত্রি-অক্ষরের শব্দের জন্য ন্যূনতম বিবেচনা করে সিকোয়েন্সটি সহ উপসর্গ এবং প্রত্যয়, আমি শব্দের দীর্ঘতম শৃঙ্খলে 4655 এর উপরের আবদ্ধ পেতে পারি, সুতরাং 1733 এর বর্তমান সেরাটির উন্নতি করার জন্য এখনও অনেক বেশি জায়গা থাকতে পারে
পিটার টেলর

উত্তর:


9

জাভা, উপদ্বীপের পক্ষে পক্ষে যুক্তিযুক্ত যা বৃহত্তম গ্রাফকে প্ররোচিত করে: 1825 1855 1873

নীচের কোডটি 10 ​​মিনিটের নিচে চলে এবং নিম্নলিখিত পথটি সন্ধান করে:

[wad, wadis, dis, dismay, may, mayfly, flywheels, elsewhere, erecting, ingratiate, ateliers, ersatzes, zest, esthetic, tickled, ledger, germicide, idealizes, zestful, fulling, ingrains, institute, uterine, ineptness, essaying, ingeniously, slyness, essences, cessations, onshore, ores, resoundingly, glycerine, inertness, essay, say, saying, ingenuous, ousted, tediously, sly, slyest, estrogen, genuflecting, ingestion, ionizer, zeros, roses, sesames, mes, meshed, hedonist, isthmuses, sesame, amending, ingredient, entrapment, enthuses, session, ionosphere, erectness, essayist, isthmus, mustaches, hesitatingly, glycogen, generation, ions, onset, settable, blew, lewder, deriding, ingratiates, testicles, lessen, sensitization, ionization, ionizing, ingratiating, ingenious, ouster, terrorizing, ingest, estranges, gesticulating, ingrates, testis, tissue, sue, suede, edelweiss, issuing, ingraining, ingrown, owner, nerdiest, estimation, ionospheres, rescue, cue, cueing, ingesting, ingot, got, gotten, tensor, sorrowing, ingratiated, tedious, ousting, ingratiatingly, glycerin, ringside, identifiable, bleariest, ester, terminological, calibrator, torrent, entraps, apse, pseudonym, nymphomania, niacin, cinema, emailed, led, ledges, gesticulates, testicle, clement, entail, ail, ailment, enter, terrains, inspires, restaurateur, euros, rosiest, estimates, tester, termite, iterator, torture, urethras, raspiest, estimator, tore, oregano, anointment, enthuse, useful, fulfil, filmstrip, riposte, stereotyped, pedicure, urea, readmits, itself, elf, elfin, finagles, lesbians, answerable, bleat, eatery, erythrocytes, testosterone, one, ones, nest, esteemed, medicine, inextricable, blessed, sediment, entry, try, tryout, outsources, cesarians, answered, redressed, seducer, cervical, calumniates, test, establishment, entombment, enthusiastic, tickles, lessens, ensemble, blemishes, hesitant, antic, tick, ickiest, estimable, blemished, hedgehog, hogan, gantlet, letdown, own, ownership, hippest, estates, testates, testiest, establishes, hes, hesitates, testable, bleakest, esthetes, testament, entice, iceberg, erg, ergonomic, microscope, operatives, vestibules, lesser, serenade, adenoidal, dales, lest, estrangement, entrap, raptures, resourceful, fulsome, omen, menswear, earthliest, established, hedges, gestates, testy, styes, yeshivot, voter, terrible, blender, derides, descent, enticed, cedillas, lass, assailable, bleacher, hermit, mite, item, temperas, rash, ashtray, rayon, yonder, dermis, mismanage, agendas, dash, ashy, shy, shyster, terrapins, insatiable, bleeder, derives, vestment, entangle, glen, lengthens, ensconced, ceded, deduced, cedars, arsenic, nice, ice, iced, cedar, daredevil, villa, llamas, masseuse, use, useable, bleach, achievable, bleached, hedonistic, tic, ticker, kerchieves, vessel, sell, ell, elliptic, ticket, kettles, lessee, seeps, epsilon, longboat, oath, atherosclerosis, sisterhood, oodles, lesson, sonatas, tassel, selvage, age, agent, entranced, cedes, descender, deranges, gestures, restraint, interment, enthused, seduced, cedilla, llama, amalgam, gamut, mutable, blend, endear, earthy, thymus, mussel, seltzer, zero, erodes, despot, potful, fulfillment, enthrall, allot, lotus, tussle, sledgehammered, redolent, entrapped, pedestal, talk, alkalis, listen, tended, deductible, bleeped, pedigree, reentered, redistribute, uterus, rustproofed, fed, fedora, oranges, gesundheit, either, herdsman, manes, nestles, lessor, sorrowful, fullback, acknowledges, gestured, redoubtable, blended, deduces, cesareans, answer, werewolves, vesper, perseveres, restructures, reside, ideogram, rammed, meddlesome, omens, ensign, ignores, restrains, insolent, entanglement, entrenchment, enticement, entomological, calligraphy, physical, calico, iconoclast, astringent, entertainment, entrant, antennas, nasty, stymie, miens, enslave, averred, redefine, inexorable, blenched, hedgerow, rowboat, oat, oaten, tend, endears, arson, songwriter, terminable, blent, entreaty, atypical, calypso, psoriasis, sister, term, ermine, ineligible, bleaker, kerosene, enema, emancipator, tormentor, torrider, derailment, entertains, instil, tildes, destine, inelegant, anthropomorphic, hiccup, cupolas, lastingly, glycerol, rollback, acknowledgment, entombed, bedridden, denser, servicewomen, menopause, used, sedatives, vesicle, clearinghouse, user, servant, antipodes, descry, crystalline, inexpedient, enthusiast, astonishment, entirety, etymological, calendared, redbreast, astronomer, merinos, nosedove, overpay, pay, paymaster, termagant, antiaircraft, aftercare, ares, resentful, fulcrum, rumpus, pushcart, artiste, stethoscopes, pesetas, taste, steadfast, astride, ides, destitute, utensil, silvan, vanguard, ardent, entryway, waysides, despair, airdrop, ropes, pestered, redder, derangement, entered, redeemed, medullas, lasagnas, nasal, salsas, sashay, hay, haymow, mow, mowed, wedder, derringer, germane, anemic, microfilmed, media, diatom, tomboys, oyster, terminator, toreador, dorsal, salespeople, pleased, sedater, terabit, bitten, tentacle, clergyman, manifesto, stomach, achoo, hoopla, plaza, azalea, leaven, vendor, dormant, antiparticle, cleared, redraft, afterword, ordains, insufficient, entitlement, entomb, ombudsmen, men, mental, tallyhos, hospice, icecap, cape, aperitif, tiffed, fedoras, rasped, pediatric, rickshaw, hawker, keratin, tinctures, reset, setback, acknowledgement, enthronement, entwine, inexact, actor, torpedos, dosed, sedan, dancer, cerebrum, rumple, plea, leach, ache, cheaper, per, periscopes, pestilent, entreat, eater, terser, serape, ape, apes, pesky, skycap, capped, pederast, astuter, terrace, acetaminophen, henchmen, menopausal, saltcellar, lard, ardor, dormice, icebound, underbrush, ushered, redrew, rewound, underclass, assassin, sinew, newscast, astrologer, gerund, undertaken, ken, kens, ensnared, redcap, cappuccinos, nostrum, rum, rumored, redraw, rawhide, identical, calcine, inertia, tiara, arabesque, queerer, reruns, unsold, oldie, diesel, selectmen, mentored, redden, dental, talon, longhand, and, androgen, genome, omelet, lethal, hallucinogenic, nickname, amen, menhaden, denudes, despaired, redevelop, lope, operas, rasp, aspired, redskin, kindergartens, ensnares, resultant, anthropological, callus, lustful, fulcra, crammed, mediocre, crepes, pesticide, ideas, eastbound, under, derrières, respired, rediscovered, redundant, antihero, erode, ode, odes, described, bedevil, villager, gerrymander, deride, ideograph, aphid, hid, hides, describes, besides, despoil, oilskin, kingdom, dominant, ant, antipasti, stiffens, ensured, redeemer, merchant, antiwar, warped, pederasty, stylus, lush, usher, her, hereafter, terrapin, pinnacle, clerical, caliber, bereave, avenger, geriatric, rickshas, haste, stereoscopes, pester, termini, initiator, tortures, restorer, reran, ransomed, medulla, llanos, nostril, rill, illogical, calif, lifer, fervor, vortex, textures, resister, termed, medieval, valor, lord, ordered, rediscover, verbatim, times, mesdames, mescal, caliper, periscope, opera, erasures, restart, artichokes, kestrel, reliant, antebellum, lumbago, agog, goggle, gleeful, fulfill, illustrator, tor, torque, questionnaires, resumed, mediator, tort, orthodoxy, oxymora, oratorio, riot, iotas, taster, terrific, fiche, checkpoint, interloper, perfumes, mesas, sassafras, rasher, heraldry, drywall, all, allergens, ensnare, area, rearm, armchair, airman, manufactures, resurface, acerbic, bicycle, cleverer, rerun, runt, untidy, idyllic, lichens, ensures, resend, endemic, microchip, hippopotamus, muscatel, telecast, astronaut, autopilot, lot, loth, other, heros, rosin, single, gleamed, mediaeval, valet, lettered, redound, underside, ideological, calliper, perihelia, liaison, sonic, nicknames, messenger, germicides, descendant, antigen, genital, tall, allergen, gentleman, mangos, gossipped, pedicures, resistant, antlered, redeveloped, pedagogical, calligrapher, heroins, inside, idea, deafen, fen, fencer, cerebra, bravuras, rascal, calculus, lusher, herbivores, resins, instill, illicit, citric, ricochet, heterodoxy, oxygen, generic, rice, icebox, box, boxcar, cartography, physique, quell, ellipsis, sis, sisal, sallow, lowbrow, rowel, well, elliptical, calf, alfresco, scow, cow, cowboy, boy, boyfriend, end, endeared, red, redesign, ignoramus, musket, kettledrum, rump, umped, pedlar, larvas, vassal, salmonellas, last, astronomical, calfskin, kingfisher, hereupon, ponchos, hospital, talisman, mantel, telethon, honcho, chomped, pedant, antitoxins, instant, antipastos, tossup, superintend, endangered, redskins, instigator, torpor, portico, icon, conquistador, dormer, merganser, seraphic, hiccuped, pedagogue, guerrillas, laser, sera, eraser, seraph, aphasic, sickbed, bed, bedsores, resign, ignorant, anthropocentric, richer, herdsmen, menu, enures, resuscitator, tornado, ado, adobe, obeisant, anthill, illegal, gallon, longshoremen, menace, ace, acetylene, enemas, mas, mascot, cot, cotton, tonsures, restores, result, ultraviolet, letterbox, boxer, xerography, physiological, calmer, merchantmen, mentor, torus, russet, settee, teenager, gerbil, billfold, old, olden, denatures, resubmit, mitten, ten, tenon, nonchalant, antique, queasy, asymmetric, ricksha, shanghai, haircut, cutups, upsides, descriptor, torpid, pidgin, gins, instep, tepee, peeper, perturb, urbane, anemia, miasmas, mascaras, raspy, spy, spyglass, assures, resonator, tortilla, llano, anon, nontechnical, calabash, ashram, rampart, arthropod, podia, diagram, ramp, amp, amphitheatres, resistor, tortillas, lasagna, gnat, natal, talc, alcoholic, licensee, seemed, medical, calm, almanac, nacho, choreography, phylum, lumbar, barman, mannequins, insures, respires, resound, underarm, armatures, resides, desideratum, tumult, ultrasound, underdog, dogcatcher, herald, alderwoman, mandarins, insecticides, desires, respirator, torrid, rid, rides, descant, anticlimax, maximum, mum, mummer, meringue, guesser, sermon, monogram, ramrod, rodeo, deodorant, antelopes, peso, esophagus, gusset, setups, upshot, hotel, telescope, open, penicillin, lingos, gossip, sip, siphon, honor, normal, maltreat, eaten, tenet, nether, herpes, pesticides, descend, endow, downfall, alleyway, way, waylay, layman, manicures, reshuffle, flea, lea, leash, ashen, henchman, mandolin, linchpins, inscribes, bestow, townspeople, plectrum, rumbas, baste, sternum, numb, umbilici, icicle, cleaver, vertebra, brains, insouciant, antidepressant, anthem, hemoglobin, binocular, largos, gossamer, mermaid, aid, aides, desperado, adopt, opt, optima, imam, mambos, bosun, sun, sunspot, potpourris, risky, sky, skyscraper, perturbed, bedraggle, glee, lee, leech, echo, choreographer, heraldic, dictum, tumid, midday, day, daybed, bedsides, desktop, topknot, notepaper, periodical, calendar, dare, areas, easel, selfsame, amebas, basins, ins, insulin, linnet, nettlesome, omegas, gasp, aspartame, amend, endures, researcher, herbal, balsas, sass, assault, ultimatum, tumor, mortgagor, gores, resort, orthopaedic, dictatorship, hipper, person, sonar, narc, arc, archduke, ukelele, elegant, anther, hereabout, outfox, fox, foxtrot, rotogravures, restaurant, antechamber, beret, retriever, verbena, enamor, morsel, sellout, outmaneuver, vertical, call, allergenic, niche, chessman, mandolins, insipid, pidgins, install, allures, rescind, indignant, antithetical, calicos, cosmonaut, auto, utopia, piano, another, heretical, calk, alkali, alibi, ibis, bistro, troupe, upend, endorser, serviceman, mandarin, rind, inductee, teepee, pee, peekaboo, bootstrap, rape, apertures, resin, singular, larval, valiant, antiperspirant, antipasto, stop, topical, calisthenic, nicer, cervix, vixen, xenophobic, bicep, cephalic, licit, citizenship, hippopotami, amigos, gospel, pellet, letups, upstart, artificer, cerebellum, lumberman, manic, nicknamed, medic, dickie, kielbasas, sash, ash, ashcan, cannon, nonskid, kid, kidnaper, perjures, resolver, vernacular, larkspur, puree, reefer, ferret, retains, insofar, far, fart, artisan, sandbag, bagel, gelatin, tinsel, selectman, manacle, clever, versus, sustains, inscribed, bedpan, pandemic, microprocessor, sorbet, bet, betcha, char, harem, remodel, deli, elicit, citadel, deliver, verandas, dashikis, kisser, servicemen, menthol, holiday, daydreamer, merchantman, manikins, insane, anew, newsprint, interwove, overreach, achieve, even, venom, nomad, mad, madrigal, gala, alarm, armpit, pitchman, manor, northbound, underbid, bidet, detox, toxemia, miasma, smarten, tenderloins, insult, ultra, travel, velvet, veteran, random, domino, inopportune, uneconomic, microbes, bestir, tiro, ironware, arena, enamel, melodramas, mastodon, don, donut, nut, nutmeg, meg, megalopolis, lissom, sombre, breathe, therefrom, romper, performer, merman, mangrove, overshadow, downcast, astir, tiros, rostra, trachea, heaven, ventricle, clergywoman, maneuver, verbal, ballad, ladyship, hippie, pie, piebald, alderman, manatee, teethe, thereupon, poncho, choicer, ceramic, microscopic, picayune, uneaten, tendon, donor, northeast, astound, underpass, assessor, sorghum, hum, human, mantra, trainee, needlepoint, interplay, laywoman, mannikin, kinsman, mantillas, lassie, sieve, ever, verdigris, risen, sensor, sorrel, relabel, belabor, borsch, schlep, leprechauns, unsnap, nap, napkin, kin, kingpin, pinkeye, eyeglass, assemblyman, manikin, kingship, hip, hippos, postpartum, tumbrel, relic, lichee, heehaw, haw, hawser, servicewoman, many, anyhow, howsoever, vertex, text, extra, trap, rap, rapper, periwig, wigwag, wag, wagon, gonorrhea, heave, aver, vermin, minesweeper, perplex, lexicon, congas, gastronomic, microfiche, cheapen, pentathlon, longhair, air, aircraft, aft, aftertaste, stem, tempos, postwar, war, wart, article, clear, earshot, hotshot, hotbed, bedlam, lam, lambkin, kindergarten, tenser, serum, rumor, mortar, tarmac, macabre, breech, echos, hostel, telescopic, pickerel, relay, laypeople, pleas, east, astronomic, micra, crackpot, pot, potato, atom, tombed, bedbug, bugaboo, bootleg, leg, legato, atop, topple, plethora, orangutang, angora, orangutan, tan, tandem, democrat, rat, rattan, tang, angry, gryphon, honeybee, bee, beeswax, waxen, xenon, nonplus, lustre, trellis, lisle, sleepwear, earwig, wig, wigwam, wampum, pummel, melanomas, massacre, cretin, tin, tint, interviewee, wee, weeper, persimmon, monsignori, origin, gingham, ham, hamper, pericardia, diarrhea, heartthrob, rob, robes, besom, sombreros, rosebud, bud, budgerigar, garret, retrodden, denim, nimbus, bus, bushel, helmet, metaphor, horsefly, flypaper, peritonea, near, ear, earlobes, bestowal, wall, allay, layout, outlast, astrakhan, handicapper, perusal, saltpetre, tremor, moribund, undercut, cut, cutoff, off, offal, falcon, con, consul, sultan, tannin, ninepin, pinball, allegro, grommet, metro, trot, rot, rotten, tenpin, pineapple, plectra, transit, sitar, tar, taro, arousal, salmon, moneybag, bagpipe, ipecac, cache, checkout, outrun, runaround, undersea, sea, sear, earache, cherub, rub, rubicund, underpin, pin, pint, intagli, glib, lib, libel, bellyache, cherubim, bimbos, bosuns, unsound, undertow, tow, towel, wellington, ton, tonsil, silicon, concoct, octet, tetrahedra, drachmae, maestri, tripos, possum, sum, sumac, macro, crocus, custom, tom, tomcat, catsup, sup, superstar, tarpaulin, linchpin, pinpoint, intercom, comet, met, metacarpus, pussycat, catastrophe, phenomenon, nonverbal, ballpoint, interurban, bani, animal, malt, altar, tartar, tarot, rotund, undergrad, radio, diocesan, sandbar, bar, barren, renewal, walkout, outstrip, ripen, pen, pencil, cilantro, trout, outran, rancor, corncob, cob, cobra, bra, brag, rag, ragas, gas, gasohol, holdout, output, put, putsch, schwas, was, waste, stereo, reoccur, cur, curb, urban, ban, bantam, tam, tamp, ampul, pullout, outwit, wit, withal, halo, alohas, hasp, asparagus, gusto, stove, overlap, lapel, pelvis, visit, sit, sitcom, compendia, diadem, demigod, god, goddam, dam, dampen, pennon, non, noncom, compel, pelican, cancan, can, cancel, celesta, starlit, lit, litmus, muscat, cat, catnap, naphtha, than, handcar, carpel, pellagra, grammar, mar, mariachi, chichi, chi, chimp, imp, impel, pelvic, vicar, car, caribou, bourgeoisie, siesta, stab, tab, tabu, abut, but, butterfat, fat, fathom, homespun, pun, puns, unsheathe, the, theorem, remove, overtax, tax, taxicab, cab, cabal, balsam, sambas, basal, salamis, missal, salt, altho, tho, thou, housebound, underground, underclassman, man, mannikins, insectivores, resonant, antelope, operator, torn, ornamental, tallow, low, lowered, reddens, enshrine, inefficient, entertainer, nerves, vestiges, gesturing, ingested, tediousness, essentials]

মূল ধারণা

ইন দীর্ঘতম নির্দেশ পাথ এবং সাইকেল approximating , Bjorklund, Husfeldt এবং খান্না, কম্পিউটার সায়েন্স মধ্যে বক্তৃতা নোট (2004), 222-233, লেখক উত্থাপন করা মধ্যে বিক্ষিপ্ত Expander একটি দীর্ঘ পথ সুত্রাবলী নকশা একটি অর্থগৃধ্নু অনুসন্ধানে খুঁজে পাওয়া যেতে পারে যা প্রতিটি নির্বাচন পাথের বর্তমান পুচ্ছের প্রতিবেশী পদক্ষেপ করুন যা জি'র বৃহত্তম উপগ্রাফকে বিস্তৃত করে, যেখানে জি 'বর্তমান পথের শীর্ষাংশগুলি মোছার সাথে মূল গ্রাফ। আমি কোনও গ্রাফটি এক্সপেন্ডার গ্রাফ কিনা তা পরীক্ষা করার ভাল উপায়ের বিষয়ে নিশ্চিত নই, তবে আমরা অবশ্যই একটি স্পারস গ্রাফ নিয়ে কাজ করছি এবং যেহেতু এর মূলটি প্রায় 20000 উল্লম্ব এবং এটির ব্যাস মাত্র 15 আছে অবশ্যই এটি ভাল থাকতে হবে সম্প্রসারণ বৈশিষ্ট্য। সুতরাং আমি এই লোভী heuristic গ্রহণ।

গ্রাফ দেওয়া G(V, E), আমরা জানতে পারেন কত ছেদচিহ্ন ব্যবহার করে প্রতিটি প্রান্তবিন্দু থেকে পৌঁছানো হয় ফ্লয়েড-Warshall মধ্যে Theta(V^3)সময়, বা ব্যবহার জনসন এর এলগরিদম মধ্যে Theta(V^2 lg V + VE)সময়। যাইহোক, আমি জানি যে আমরা এমন একটি গ্রাফের সাথে কাজ করছি যা খুব বড় দৃ strongly়ভাবে সংযুক্ত উপাদান (এসসিসি) রয়েছে, তাই আমি একটি ভিন্ন পদ্ধতির গ্রহণ করি। যদি আমরা টারজানের অ্যালগরিদম ব্যবহার করে এসসিসি সনাক্ত করি তবে আমরা সংক্ষেপিত গ্রাফের জন্য একটি টপোলজিকাল সাজও পাই G_c(V_c, E_c)যা O(E)সময়মতো অনেক ছোট হবে । যেহেতু G_cএকটি DAG হয়, আমরা এ reachability গনা করতে G_cO(V_c^2 + E_c)সময়। (আমি পরবর্তীকালে আবিষ্কৃত হয়েছে যে এই ব্যায়াম 26-2.8 এ hinted হয় CLR )।

যেহেতু চলমান সময়ের প্রভাবশালী ফ্যাক্টর তাই E, আমি উপসর্গ / প্রত্যয়গুলির জন্য ডামি নোডগুলি সন্নিবেশ করে এটিকে অনুকূল করি। তাই বদলে 151 * 64 = 9664 বিভক্তি শব্দ থেকে প্রান্ত -res কথা শুরু res- আমি শেষ শব্দ থেকে 151 প্রান্ত আছে -res করতে # মাঝামাঝি # থেকে এবং 64 প্রান্ত # মাঝামাঝি # শুরু কথায় res-

এবং পরিশেষে, যেহেতু প্রতিটি অনুসন্ধান আমার পুরানো পিসিতে প্রায় 4 মিনিট সময় নেয়, তাই আমি পূর্ববর্তী দীর্ঘ পাথের সাথে ফলাফলগুলি একত্রিত করার চেষ্টা করি। এটি অনেক দ্রুত এবং আমার বর্তমান সেরা সমাধানটি সরিয়ে নিয়েছে।

কোড

org/cheddarmonk/math/graph/Graph.java:

package org.cheddarmonk.math.graph;

import java.util.Set;

public interface Graph<V> {
    public Set<V> getAdjacent(V node);
    public double getWeight(V from, V to);
}

org/cheddarmonk/math/graph/MutableGraph.java:

package org.cheddarmonk.math.graph;

import java.util.*;

public class MutableGraph<V> implements Graph<V> {
    private Map<V, Map<V, Double>> edgesBySource = new HashMap<V, Map<V, Double>>();

    public void addEdge(V from, V to, double weight) {
        if (!edgesBySource.containsKey(to)) edgesBySource.put(to, new HashMap<V, Double>());
        Map<V, Double> e = edgesBySource.get(from);
        if (e == null) edgesBySource.put(from, e = new HashMap<V, Double>());
        if (e.containsKey(to)) throw new IllegalArgumentException("There is already an edge between the vertices");
        e.put(to, weight);
    }

    @Override
    public Set<V> getAdjacent(V node) {
        Map<V, Double> e = edgesBySource.get(node);
        if (e == null) throw new IllegalArgumentException("node doesn't appear to be in the graph");
        return Collections.unmodifiableSet(e.keySet());
    }

    @Override
    public double getWeight(V from, V to) {
        Map<V, Double> e = edgesBySource.get(from);
        if (e == null) throw new IllegalArgumentException("from doesn't appear to be in the graph");
        if (!edgesBySource.containsKey(to)) throw new IllegalArgumentException("to doesn't appear to be in the graph");

        Double c = e.get(to);
        return c == null ? 0 : c.doubleValue();
    }
}

org/cheddarmonk/math/graph/StronglyConnectedComponents.java:

package org.cheddarmonk.math.graph;

import java.util.*;

/**
* A helper class for finding the strongly connected components of a graph using Tarjan's algorithm.
* http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm
*/
public class StronglyConnectedComponents<V> {
    private final Graph<V> g;
    private List<Set<V>> topologicallySortedSccs = new ArrayList<Set<V>>();

    private final LinkedList<V> S = new LinkedList<V>();
    private final Set<V> S2 = new HashSet<V>();
    private final Map<V, Integer> index = new HashMap<V, Integer>();
    private final Map<V, Integer> lowlink = new HashMap<V, Integer>();

    private StronglyConnectedComponents(Graph<V> g) {
        this.g = g;
    }

    private void strongConnect(V v) {
        int idx = index.size();
        index.put(v, idx);
        lowlink.put(v, idx);

        S.push(v);
        S2.add(v);

        for (V w : g.getAdjacent(v)) {
            if (!index.containsKey(w)) {
                strongConnect(w);
                if (lowlink.get(w) < lowlink.get(v)) {
                    lowlink.put(v, lowlink.get(w));
                }
            }
            else if (S2.contains(w)) {
                if (index.get(w) < lowlink.get(v)) {
                    lowlink.put(v, index.get(w));
                }
            }
        }

        if (lowlink.get(v).equals(index.get(v))) {
            Set<V> scc = new HashSet<V>();
            V w;
            do {
                w = S.pop();
                S2.remove(w);
                scc.add(w);
            } while (!w.equals(v));

            topologicallySortedSccs.add(scc);
        }
    }

    public static <V> List<Set<V>> analyse(Graph<V> g, Set<V> sources) {
        if (g == null) throw new IllegalArgumentException("g");

        StronglyConnectedComponents<V> scc = new StronglyConnectedComponents<V>(g);
        for (V v : sources) {
            if (!scc.index.containsKey(v)) {
                scc.strongConnect(v);
            }
        }

        return scc.topologicallySortedSccs;
    }
}

org/cheddarmonk/ppcg/PPCG.java:

package org.cheddarmonk.ppcg;

import java.io.*;
import java.util.*;
import org.cheddarmonk.math.graph.*;

public class PPCG44922 {
    private static final String path = "/usr/share/dict/words";
    private static Set<String> allWords;
    private static Graph<String> fullGraph;

    public static void main(String[] args) {
        loadGraph();

        Random rnd = new Random();
        rnd.setSeed(8104951619088972997L);
        List<String> a = search(rnd);
        rnd.setSeed(-265860022884114241L);
        List<String> b = search(rnd);
        List<String> chain = spliceChains(a, b);
        System.out.println(chain.size());
        System.out.println(chain);
    }

    private static List<String> search(Random rnd) {
        List<String> chain = new ArrayList<String>();
        chain.add(selectOptimalReachabilityCount(fullGraph, allWords, rnd));
        while (true) {
            String tail = chain.get(chain.size() - 1);
            FilteredGraph g = new FilteredGraph(chain);

            // We know that tail only has one successor, so skip ahead.
            Set<String> candidates = new HashSet<String>(fullGraph.getAdjacent(suffix(tail)));
            candidates.removeAll(chain);
            if (candidates.isEmpty()) break;

            chain.add(selectOptimalReachabilityCount(g, candidates, rnd));
        }

        Iterator<String> it = chain.iterator();
        while (it.hasNext()) {
            if (it.next().charAt(0) == '#') it.remove();
        }
        return chain;
    }

    private static List<String> spliceChains(List<String> a, List<String> b) {
        Set<String> intersect = new HashSet<String>(b);
        intersect.retainAll(a);
        if (intersect.isEmpty()) return null;

        // Splice the longest bits. To avoid cycles, we look for intersection points which have the same set of reached intersection points.
        // Thus to get from one to the next we can take either route without violating the unique occurrence of each element in the spliced chain.
        Set<String> left = new HashSet<String>();
        Set<String> right = new HashSet<String>();
        List<String> newChain = new ArrayList<String>();

        // NB We assume that either a(0) and b(0) are the same or neither is in intersect.
        // This is a safe assumption in practice because they're both "wad".
        int idxA = 0, idxB = 0, nextA = 0, nextB = 0;
        while (idxA < a.size()) {
            nextA++;
            while (nextA < a.size() && !intersect.contains(a.get(nextA))) nextA++;
            String tailA = nextA < a.size() ? a.get(nextA) : "";
            left.add(tailA);

            nextB++;
            while (nextB < b.size() && !intersect.contains(b.get(nextB))) nextB++;
            String tailB = nextB < b.size() ? b.get(nextB) : "";
            right.add(tailB);

            if (left.equals(right) && tailA.equals(tailB)) {
                // We take the longer of idxA to nextA-1 or idxB to nextB - 1.
                if (nextA - idxA > nextB - idxB) newChain.addAll(a.subList(idxA, nextA));
                else newChain.addAll(b.subList(idxB, nextB));

                idxA = nextA;
                idxB = nextB;
            }
        }

        if (new HashSet<String>(newChain).size() == newChain.size()) return newChain;
        throw new IllegalStateException();
    }

    private static void loadGraph() {
        Set<String> words = new HashSet<String>();
        Set<String> prefixes = new HashSet<String>();
        Set<String> suffixes = new HashSet<String>();
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path), "UTF-8"));
            String line;
            while ((line = br.readLine()) != null) {
                if (line.length() >= 3) {
                    words.add(line);
                    prefixes.add(prefix(line));
                    suffixes.add(suffix(line));
                }
            }
            br.close();
        }
        catch (IOException ioe) {
            throw new RuntimeException(ioe);
        }

        // Filter down to a core with decent reachability.
        prefixes.retainAll(suffixes);
        MutableGraph<String> g = new MutableGraph<String>();
        Iterator<String> it = words.iterator();
        while (it.hasNext()) {
            String line = it.next();
            if (prefixes.contains(prefix(line)) && prefixes.contains(suffix(line))) {
                // In the interests of keeping the number of edges down, I insert fake vertices.
                g.addEdge(prefix(line), line, 1);
                g.addEdge(line, suffix(line), 1);
            }
            else it.remove();
        }

        fullGraph = g;
        allWords = Collections.unmodifiableSet(words);
    }

    private static String prefix(String word) {
        return "#" + word.substring(0, 3) + "#";
    }

    private static String suffix(String word) {
        return "#" + word.substring(word.length() - 3, word.length()) + "#";
    }

    private static <V> Map<V, Integer> reachabilityCount(Graph<V> g, Set<V> sources) {
        List<Set<V>> sccs = StronglyConnectedComponents.analyse(g, sources);
        int n = sccs.size();

        // Within a strongly connected component, each vertex can reach each other vertex.
        // Then we need to also take into account the other SCCs which they can reach.
        // We can exploit the fact that we already have a topological sort of the DAG of SCCs to do this efficiently.
        Map<V, Integer> index = new HashMap<V, Integer>();
        for (int i = 0; i < n; i++) {
            for (V v : sccs.get(i)) index.put(v, i);
        }

        BitSet[] reachableSccs = new BitSet[n];
        Map<V, Integer> reachabilityCounts = new HashMap<V, Integer>();
        for (int i = 0; i < n; i++) {
            Set<V> scc = sccs.get(i);
            reachableSccs[i] = new BitSet(n);
            reachableSccs[i].set(i);
            for (V v : scc) {
                for (V w : g.getAdjacent(v)) {
                    int j = index.get(w);
                    if (j < i) reachableSccs[i].or(reachableSccs[j]);
                }
            }

            int count = 0;
            for (int j = reachableSccs[i].nextSetBit(0); j >= 0; j = reachableSccs[i].nextSetBit(j+1)) {
                count += sccs.get(j).size();
            }
            for (V v : scc) {
                reachabilityCounts.put(v, count);
            }
        }

        return reachabilityCounts;
    }

    private static <V extends Comparable<? super V>> V selectOptimalReachabilityCount(Graph<V> g, Set<V> candidates, Random rnd) {
        Map<V, Integer> r = reachabilityCount(g, candidates);

        int max = 0;
        List<V> attaining = new ArrayList<V>();
        for (V candidate : candidates) {
            int score = r.get(candidate);
            if (score > max) {
                max = score;
                attaining.clear();
            }
            if (score == max) attaining.add(candidate);
        }

        return selectRandom(attaining, rnd);
    }

    private static <T extends Comparable<? super T>> T selectRandom(Collection<T> elts, Random rnd) {
        List<T> deterministic = new ArrayList<T>(elts);
        Collections.sort(deterministic);
        Collections.shuffle(deterministic, rnd);
        return deterministic.get(0);
    }

    private static class FilteredGraph implements Graph<String> {
        private final Set<String> filteredVertices;

        public FilteredGraph(Collection<String> filteredVertices) {
            this.filteredVertices = new HashSet<String>(filteredVertices);
        }

        @Override
        public Set<String> getAdjacent(String node) {
            if (filteredVertices.contains(node)) return Collections.emptySet();

            Set<String> adj = new HashSet<String>(fullGraph.getAdjacent(node));
            adj.removeAll(filteredVertices);
            return adj;
        }

        @Override
        public double getWeight(String from, String to) {
            throw new RuntimeException("Not used");
        }
    }
}

"উত্থাপন" হুম ..
ম্যাথু রোহ

6

রুবি, 1701

"Del" -> "ersatz's"( সম্পূর্ণ অনুক্রম )

অনুকূল সমাধানটি অনুসন্ধানের চেষ্টা করা সময়মতো ব্যয়বহুল প্রমাণিত। তাহলে কেন এলোমেলো নমুনাগুলি বেছে না নিই, যা আমরা পারি তা ক্যাশে এবং সেরাটির জন্য আশা করি?

প্রথমে একটি Hashতৈরি করা হয় যা পুরো পৃথিবীতে উপসর্গগুলি উপসর্গের সাথে শুরু হয় (উদাঃ "the" => ["the", "them", "their", ...])। তারপরে তালিকার প্রতিটি শব্দের জন্য পদ্ধতিটি sequenceবলা হয়। এটি সম্ভবত এমন শব্দগুলি পায় যা সম্ভবত থেকে অনুসরণ করতে পারে Hash, এর একটি নমুনা নেয় 100এবং নিজেকে পুনরাবৃত্তভাবে ডাকে। দীর্ঘতম নেওয়া হয় এবং গর্বের সাথে প্রদর্শিত হয়। আরএনজি ( Random::DEFAULT) এর বীজ এবং ক্রমটির দৈর্ঘ্যও প্রদর্শিত হয়।

ভাল ফলাফল পেতে আমাকে কয়েকবার প্রোগ্রামটি চালাতে হয়েছিল। এই নির্দিষ্ট ফলটি বীজ সহ উত্পন্ন হয়েছিল328678850348335483228838046308296635426328678850348335483228838046308296635426

লিপি

require "json"

def prefix(word); word[0, 3];  end
def suffix(word); word[-3, 3]; end

def sequence(word, prefixes, skip)
  if SUBS.key?(word) && (SUBS[word] - skip) == SUBS[word]
    return SUBS[word]
  end

  skip         += [word] 
  suffix        = suffix(word)
  possibilities = (prefixes[suffix] ||= []) - skip

  if possibilities.empty?
    return [word]
  else
    sequences = possibilities.sample(100).map do |possibility|
      sequence(possibility, prefixes, skip)
    end

    return SUBS[word] = [word] + sequences.max_by(&:size)
  end
end

def correct?(sequence)
  once_only = sequence.all? { |y| sequence.count(y) == 1 }
  following = sequence.each_cons(2).all? { |a,b| a[-3,3] == b[0,3] }

  return once_only && following
end

words = open("words.txt", "r", &:read).split.select { |word| word.size >= 3 }

SUBS     = {}
PREFIXES = {}

# Built a Hash that maps prefixes to an Array of words starting with the prefix.
words.each do |word|
  prefix = prefix(word)

  PREFIXES[prefix] ||= []
  PREFIXES[prefix] << word
end

longest = [1]

words.each do |word|
  PREFIXES[prefix(word)].delete(word)

  sequence = sequence(word, PREFIXES, [word])

  if sequence.size > longest.size
    longest = sequence
  end
end

puts longest.inspect
puts 
puts "Generated with seed: #{Random::DEFAULT.seed}"
puts "Length: #{longest.size}"
puts "Correct: #{correct?(longest)}"

আমি এলোমেলোভাবে পরের শব্দের জন্য সম্ভাবনার নমুনা দেওয়ার কথা ভাবি নি! আমি সেই ধারণাটি ব্যবহার করছি!
কেএসএফটি

এটি চালাতে কত সময় নিয়েছে?
কেএসএফটি

আমি এটি সময় নিইনি, তবে আমি প্রায় 15-20 মিনিটের অনুমান করি (আমি এটিকে রাতের খাবারের উপর দিয়ে চলতে দেই)।
ব্রিটিশিয়া

আমার পাইথন একজন এখনও ডিক (হ্যাশ) তৈরি করছে ...
কেএসএফটি

অভিধান তৈরি করা দ্রুত হওয়া উচিত (সমস্ত শব্দগুলির একক পুনরাবৃত্তির গর্ত)। রুবি 0.0996কয়েক সেকেন্ডের রিপোর্ট করে ।
ব্রিটিশিয়া

5

স্কোর: 1631 শব্দ

['Aachen', 'hen', 'henceforward', 'ardor', 'dorsal', 'salmon', 'monolog', 'log', 'logjam', 
'jam', 'jamb', 'ambassador', 'dormouse', 'useable', 'bleeding', 'ingenious', 'ouster', 
'terminable', 'bleakness', 'essay', 'say', 'saying', 'ingress', 'essences', 'cession', 
....
....
'ionosphere', 'ere', 'erecting', 'ingratiating', 'ingrate', 'ate', 'ateliers', "ersatz's"]

আপনি এখানে পুরো ক্রমটি খুঁজে পেতে পারেন: http://pastebin.com/TfAvhP9X

আমার কাছে সম্পূর্ণ উত্স কোড নেই। আমি বিভিন্ন পদ্ধতির চেষ্টা করছিলাম। তবে এখানে কয়েকটি কোড স্নিপেটস রয়েছে যা প্রায় একই দৈর্ঘ্যের একটি ক্রম তৈরি করতে সক্ষম হবে। দুঃখিত, এটি খুব সুন্দর নয়।

কোড (পাইথন):

প্রথমে কিছু ডেটা প্রিপ্রোসেসিং।

from collections import defaultdict

with open('words') as f:
    words = [line.strip() for line in f]
words = [word for word in words if len(word)>=3 and word[-2:]!="'s"]

word_connections = defaultdict(list)
for word in words:
    word_connections[word[:3]].append(word)

তারপরে আমি একটি পুনরাবৃত্ত ফাংশন (গভীরতার প্রথম অনুসন্ধান) সংজ্ঞায়িত করেছি।

global m
m=0
def find_chain(chain):
    s = set(word_connections[chain[-1][-3:]])-set(chain)
    if len(s)== 0:
        global m
        if len(chain) > m:
            m=len(chain)
            print(len(chain), chain)
    else:
        for w in s:
            if w not in chain:
                find_chain(chain + [w])

for word in words:
    find_chain([word])

অবশ্যই এটি অনেক দীর্ঘ সময় নেয়। তবে কিছু সময়ের পরে এটি 1090 উপাদানগুলির সাথে একটি ক্রম খুঁজে পেয়েছিল এবং আমি থামলাম stopped

পরবর্তী কাজটি হ'ল স্থানীয় অনুসন্ধান। অনুক্রমের প্রতিটি দুই প্রতিবেশী এন 1, এন 2 এর জন্য, আমি এন 1 থেকে শুরু করে এন 2 এ শেষ হওয়া সিকোয়েন্সটি সন্ধান করার চেষ্টা করি। যদি এই জাতীয় ক্রম বিদ্যমান থাকে তবে আমি এটি sertোকান।

def tryimpove(chain, length, startvalue=0):
    s=set(chain)
    for i in range(startvalue,len(chain)-1):
        print(i)
        for sub in sorted(short_sequences([chain[i]],length,chain[i+1]),key=len,reverse=True):

            if len(s & set(sub))==1:
                chain[i:i+1]=sub
                print(i,'improved:',len(chain))
                return tryimpove(chain,length,i)
    return chain

def short_sequences(chain,length,end):
    if 2 <= len(chain):
        if chain[-1][-3:]==end[:3]:
            yield chain
    if len(chain) < length:
        s = set(word_connections[chain[-1][-3:]])-set(chain)
        for w in s:
            for i in short_sequences(chain + [w],length,end):
                yield i

for m in range(5, 100):
    seq = tryimpove(seq,m)

অবশ্যই আমাকে নিজেও প্রোগ্রামটি থামাতে হয়েছিল।


আপনার ফলাফল পেতে কতক্ষণ সময় লাগে?
হাক্কেতো

1090 সিক্যুয়েন্স তৈরি করতে প্রায় এক ঘন্টা এবং স্থানীয় অনুসন্ধান করতে আরও এক ঘন্টা।
জাকুবে

5

পিএইচপি, 1742 1795

আমি এই সম্পর্কে পিএইচপি সঙ্গে সম্পর্কে জগাখিচুড়ি করছি। কৌতুকটি অবশ্যই বিশদভাবে প্রায় 20 কে তালিকার তালিকাটি টানছে যা কেবল বৈধ এবং কেবল বাকীটি ফেলে দিচ্ছে। আমার প্রোগ্রামটি এটি পুনরাবৃত্তভাবে করে (কিছু শব্দ এটি প্রথম পুনরাবৃত্তির মধ্যে ফেলে দেয় মানে অন্যরা আর বৈধ থাকে না) শুরুতে।

আমার কোডটি ভয়াবহ, এটি বেশ কয়েকটি বিশ্বব্যাপী ভেরিয়েবল ব্যবহার করে, এতে অনেক বেশি মেমরি ব্যবহার করা হয় (এটি প্রতিটি পুনরাবৃত্তির জন্য পুরো উপসর্গের টেবিলের একটি অনুলিপি রাখে) এবং আমার বর্তমানের সেরাটি নিয়ে আসতে আক্ষরিক দিন সময় লেগেছিল তবে এটি এখনও পরিচালনা করে জয়ী হতে - আপাতত। এটি বেশ দ্রুত শুরু হয় তবে সময় বাড়ার সাথে সাথে ধীর ও ধীর হয়ে যায়।

<?php

  function show_list($list)
  {
      $st="";
      foreach ($list as $item => $blah)
      $st.="$item ";
      return rtrim($st);
  }

  function mysort($a,$b)
  {
      global $parts;
      $a_count=isset($parts[substr($a,-3,3)])?count($parts[substr($a,-3,3)]):0;
      $b_count=isset($parts[substr($b,-3,3)])?count($parts[substr($b,-3,3)]):0;
      return $b_count-$a_count;
  }  

  function recurse($line,$list,$parts)
  {
    global $lines; 
    global $max;
    global $finished;
    global $best;
    $end=substr($line,-3,3);
    $count=0;
    if ($finished)
        return;
    if (isset($parts[$end]))
    {
        $maxp=count($parts[$end])-1;
        if ($maxp<0)
            return;
        $randa=array();
        for ($a=1;$a<3;$a++)
        {
            $randa[mt_rand(0,$maxp)]=1;
        }
        $n=mt_rand(0,$maxp);

        foreach ($parts[$end] as $key => $endpart)
        {

            if (!isset($list[$endpart]))
            {
                $this_part=$parts[$end];
                unset($this_part[$key]);
                $new_parts=$parts;
                unset($new_parts[$end][$key]);
                $list[$endpart]=1;
                recurse($endpart,$list,$new_parts);
                unset($list[$endpart]);
            }
        }

    }
    $count=count($list);
    if ($count>$max)
    {
        //echo "current best: $count\n";
        file_put_contents('best.txt',show_list($list) . "\n",FILE_APPEND);
        $max=$count;
        $best=$list;
    }
  }

  function cull_lines(&$lines)
  {
      global $parts;
      do 
      {    
          $wordcount=count($lines);
          $parts=array();$end_parts=array();
          foreach ($lines as $line)
          {
              if (strlen($line)<3)
                continue;
              $parts[substr($line,0,3)][]=$line;
              if (strlen($line)>3)
                $end_parts[substr($line,-3,3)][]=$line;
          }
          foreach ($lines as $key => $line)
          {
              $end=substr($line,-3,3);
              if (strlen($line)<3 || !isset($parts[$end]) || !isset($end_parts[substr($line,0,3)] ) )
                unset($lines[$key]);
          }
          foreach ($parts as $part)
          {
            if (count($part)==1)
            {
                $source_part=mt_rand(0,count($part)-1);
                $this_part = substr($part[0],0,3);
                $this_min = 10000;
                $this_key = 0;
                if (strlen($part[$source_part])==3)
                {
                    foreach ($lines as $key => $line)
                    if ($line == $part[$source_part])
                    {
                            unset($lines[$key]);
                            break;
                    }
                }
                elseif (isset($end_parts[$this_part]))
                {
                    foreach ($end_parts[$this_part] as $key => $end_part)
                    {
                        if (isset($parts[substr($end_part,0,3)]))
                        {
                            $n=count($parts[substr($end_part,0,3)]);
                            if ($n<$this_min)
                            {
                                $this_min=$n;
                                $this_key=$key;    
                            }
                        }
                    }

                    foreach ($lines as $key => $line)
                    if ($line == $part[$source_part])
                    {
                            unset($lines[$key]);

                    }
                    elseif ($line == $end_parts[$this_part][$this_key])
                    {
                        $lines[$key].=' ' . $part[$source_part];
                    }
                }

            }
          }
          echo "$wordcount words left\n";
      }
      while ($wordcount!=count($lines));
  }

  ini_set('xdebug.max_nesting_level',10000);
  ini_set('memory_limit','1024M');
  $lines = explode("\n",file_get_contents('words.txt'));
  cull_lines($lines);
  $max=0;
  foreach ($parts as $key=>$part)
    usort($parts[$key],'mysort');    

  $n=count($lines);
  foreach ($lines as $rand => $blah)
  {
      if (mt_rand(0,$n)==1)
        break;
  }
  $rand=$lines[$rand];
  $line[$rand]=1;
  echo "Starting with $rand...\n";
  recurse($rand,$line,$parts);
  unset($line[$rand]);

?>

শুরু এবং সমাপ্তির জন্য একটি অনাথ শব্দ ব্যবহার করা একটি সুস্পষ্ট উন্নতি হবে।

যাইহোক, আমি জানি না কেন আমার পেস্টবিনের তালিকাটি এখানে একটি মন্তব্যে স্থানান্তরিত হয়েছিল, এটি এখন আমার কোডটি অন্তর্ভুক্ত করার কারণে এটি পেস্টবিনের লিঙ্ক হিসাবে ফিরে এসেছে।

http://pastebin.com/Mzs0XwjV


আমি আপনার উত্তরে পাস্তবিনের কোডটি অন্তর্ভুক্ত করেছি, তবে আমাদের কোনও বাহ্যিক ডোমেনের উপর নির্ভর করতে হবে না; পাস্তবিন নীচে নেমে গেলে, আমরা এখনও আপনার কোডটি এখানে দেখতে পারি।
ProgramFOX

ভাল, আমি কমপক্ষে কিছুক্ষণের জন্য বিজয়ী উত্তর পেয়ে খুশি হয়েছিলাম। চমৎকার কাজ পিটার টেলর ...
ভয়ঙ্করভাবে

ওহ, এখন আমি দেখতে পাচ্ছি যে আপনার উত্তরটিতে আমার তালিকাটি যুক্ত করা উচিত ছিল না; আমি কিছুটা বিভ্রান্ত হয়ে পড়েছিলাম এবং আমি কোড এবং শব্দের তালিকা মিশ্রিত করেছিলাম এবং আপনার উত্তরে তালিকাটি অন্তর্ভুক্ত করেছি। আমি এটার জন্য দুঃখিত.
প্রোগ্রামফক্স

4

পাইথন: 1702 - 1704 - 1733 শব্দ

আমি একটি ডিক্ট ব্যবহার করে সমস্ত শব্দের সমস্ত উপসর্গ ম্যাপ করতে, যেমন

{
    "AOL" : [
        "AOL", "AOL's"
    ],...
    "oct" : [
         "octet","octets","octette's"
    ],...
}

সামান্য উন্নতি সম্পাদনা করুন : সমস্ত সরানোuseless শুরুতে শব্দ , যদি তাদের প্রত্যয় উপসর্গের তালিকায় না থাকে (সম্ভবত একটি শেষ শব্দ হবে)

তার পরে তালিকায় একটি শব্দ নিন এবং গাছ নোডের মতো উপসর্গের মানচিত্রটি ব্রাউজ করুন

import sys, fileinput
def p(w):return w[:3]

class Computing:
    def __init__(_):
        _.wordData = []; _.prefixes = {}
        _.seq = []; _.bestAttempt = []
        _.stop = False
        for l in fileinput.input():
            word = l.strip()
            if len(word) > 2:_.wordData.append(_.addPfx(word, p(word)))
        _.rmUseless();_.rmUseless()
        _.fromI = 0; _.toI = len(_.wordData)

    def rmUseless(_):
        for w in _.wordData:
            if not w[-3:] in _.prefixes: _.wordData.remove(_.rmPfx(w,p(w)))

    def addPfx(_, w, px):
        if not px in _.prefixes:_.prefixes[px] = []
        _.prefixes[px].append(w)
        return w
    def rmPfx(_,w,px):
        _.prefixes[px].remove(w)
        if len(_.prefixes[px]) == 0:del _.prefixes[px];
        return w

    def findBestSequence(_):
        def pickItem():
            r = None
            if _.fromI < _.toI:r = _.wordData[_.toI-1];_.toI -= 1;
            return r
        while not _.stop:
            w = pickItem()
            if not w:break;
            _.seq = [_.rmPfx(w,p(w))]
            _.checkForNextWord()
            _.addPfx(w, p(w))

        print " ".join(_.bestAttempt)

    def checkForNextWord(_):
        _.stop = len(_.seq) >= 1733
        cw = _.seq[-1]
        if not _.stop:
            if cw[-3:] in _.prefixes:
                lW = []
                for word in _.prefixes[cw[-3:]]:
                    if not word[-3:] in lW:
                        _.seq.append(_.rmPfx(word,p(word)))
                        _.checkForNextWord()
                        if _.stop :break;
                        _.addPfx(_.seq.pop(), p(word))
                        lW.append(word[-3:])
                    if _.stop :break;
        if len(_.bestAttempt) < len(_.seq):_.bestAttempt = _.seq[:];

sys.setrecursionlimit(6000)
Computing().findBestSequence()

প্রোগ্রামটি থামার সময় জানতে প্রচুর শব্দের প্রয়োজন, 1733পদ্ধতি হিসাবে পাওয়া যাবেcheckForNextWord̀

প্রোগ্রামটির আর্গুমেন্ট হিসাবে ফাইলের পথ দরকার

খুব অজগর নয় তবে চেষ্টা করেছি।

এই ক্রমটি গণনা করতে 2 মিনিটেরও কম সময় নিয়েছে: সম্পূর্ণ আউটপুট :

udestudes বিচ্ছিন্নভাবে ateliers খেয়েছে ... বুদ্ধিমান স্বৈরাচারী শ্রদ্ধা


4

স্কোর: 249 500 1001

আচেন -> মুরগী ​​-> অতএব -> উত্সাহী -> প্রবন্ধ -> আইল -> অসুস্থ -> নেতৃত্বাধীন -> খাত্তর -> জারবিল -> দ্বিপক্ষীয় -> রাইলিং -> উদ্ভাবনী - -> ক্ষমতাচ্যুত -> ক্লান্তিকর -> উত্সাহী -> তেরবিট -> বিট -> বিচড -> হেজহোগ -> হোগ -> হোগান -> গ্যান্ডার -> ট্রেন -> অ্যালারনস -> সূচনা -> সেট -> সেটব্যাক -> স্বীকৃতি -> এনটেল -> লেজার -> এারস্যাটজ -> জাস্ট -> প্রতিষ্ঠিত -> হিজারো -> সারি -> রোবোট -> ওট - -> ওটেন -> দশ -> টেনেবল -> ব্লিচ -> ache -> সস্তা -> কলম -> দণ্ড -> জেস্টফুল -> ফুলক্রা -> কাঁকড়া -> রাব্বিনিকাল -> calabash -> ছাই -> লজ্জা -> পদক -> ডেল -> আলে -> সতর্ক -> ক্লান্তিকর -> চক্রান্ত ->স্লাইস্ট -> প্রতিষ্ঠিত করে -> হিঙ্ক -> দ্বিধা -> পিঁপড়া -> অ্যান্টাসিড -> সিডার -> পদক্ষেপযুক্ত -> খাঁজ -> গর্ভজাত -> ক্লান্তি -> রচনা -> বলুন - -> বলছেন -> উদ্ভাবনীভাবে -> স্লাইনেস -> প্রবন্ধ -> উদ্দীপনা -> উত্সাহ -> উদ্দীপনা -> প্রাবন্ধিক -> ইসথমাস -> মাসকট -> বিড়াল -> বিপর্যয়যুক্ত -> ইঁদুর -> বরফ -> আইসবার্গ -> ইরগ -> ইরগোনমিক -> মাইক্রা -> কাঁকড়া -> বিছানা -> বিছানা -> লেসবিয়ানদের -> উত্তর -> ছিল -> আগে - -> খাড়া করা -> নিবন্ধ -> প্রতিষ্ঠা -> ইনজেস্টিং -> ইনজেশন -> আয়ন -> আয়নায়ন -> আয়নাইজার -> শূন্য -> ইরোড -> আড -> আডস -> desalinates -> পরীক্ষা -> প্রতিষ্ঠা - -> entailing -> ingot -> পেয়েছে -> অর্জিত ->ভাড়াটিয়া -> বিরোধী -> ইসথমিউস -> তিল -> আমেবাস -> বেসাল -> সালামেড -> মেডেলিয়ান -> আয়নাইজিং -> আইগ্রেনিং -> ইনগ্রেনস -> ইনস -> পাগল - -> উপাখ্যান -> ট্যাল্ক -> অ্যালকোহল -> ধরে রাখুন -> পুরাতন -> ওল্ডেন -> ডেন -> অস্বীকৃতি -> ইউরিয়া -> পৌঁছনো -> অ্যাসেড -> হেজেস -> গ্যাস্টেটস -> টেস্টেবল -> ব্লিচড -> হেজিং -> ইন্টিগ্রেটস -> টেস্টামেন্ট -> আটকা পড়ে -> চকচকে -> পদক -> উপকূড়া -> আকরিক -> ওরেগানো -> আনোডস - -> বিচ্ছিন্নকরণ -> অমিতকরণ -> টেস্টেটস -> পরীক্ষক -> তেরবিটস -> তার -> নিজেই -> এলফ -> এলফিন -> ফাইন -> ফাইনাল -> গ্ল্যামিং -> ইন্টিরিটেটিং -> ইরগ্রেটেটিং -> গ্লিসারিন -> রাইন্ড -> bণী -> এসেন্সেন্স ->সিজারিয়ান -> জবাবদিহি -> ব্লিচার -> তার -> হেরাল্ড -> প্রবীণ -> লেনদেন -> উপাদান -> জড়িয়ে থাকা -> জড়িত -> ক্ষত -> আয়নোস্ফিয়ার -> উত্সাহ - -> আয়নোস্ফিয়ার -> পুনঃ বিক্রয় -> সতর্কতা -> ইনগ্রেশস -> তিল -> মেস -> মেসাস -> স্যাশ -> আশ্কান -> ক্যানার্ড -> আরডোর -> ডার্কেস্ট -> এস্টেট -> টেস্টস -> অণ্ডকোষ -> ক্লিনার -> নার্ডেস্ট -> সম্মানিত -> মেডেলস -> ইজারা -> দেখুন -> বদ্ধ -> উত্সর্গীকৃত -> অণ্ডকোষ - -> কম -> সেনেটস -> সাক্ষ্য -> সম্মান -> ইনগ্রাউন -> নিজস্ব -> মালিক -> স্নায়ু -> ভেসিক্যাল -> ক্লিস্ট -> এসটার -> টেরাবাইট -> টেস্টিস -> টিস্যু -> মামলা -> সোয়েড -> শোথ -> emaciates ->টেস্টোস্টেরন -> এক -> এক -> নীড় -> এস্টেটিস -> টেস্টি -> স্টাইল -> চোখ -> হ্যাঁ -> যিশিবাস -> ভাস্কুলার -> লার্চ -> দ্বিধায় - -> গ্লিসারিন -> অখাদ্য -> ব্লিচ -> দ্বিধা -> সাক্ষ্য -> ইঙ্গিত -> খেয়েছে -> এটেলিয়ার্স

আমার কোডটি এখানে:

import sys
sys.setrecursionlimit(10000)
w=[i for i in open("words.txt").read().split("\n") if len(i)>=3 and "'" not in i]
b=[i[:3] for i in w]
e=[i[-3:] for i in w]
a=[i for i in zip(*(w,b,e))]
def pathfrom(i,a,l):
    longpath=[]
    for j in a:
        if j[1]==i[2]:
            r=pathfrom(j,[m for m in a if m!=j],l+1)
            path=[i]+r[0]
            if r[1]:
                return path,r[1]
            if len(path)>len(longpath):
                longpath=path
    if l>=250:
        return longpath,True
        sys.exit()
    return longpath,False
for i in a[:2]:
    print i
    p=pathfrom(i,[j for j in a if i!=j],1)
    if len(p)>len(chain_):
        chain_=p
        print p
    print p

সম্পাদনা: 1001:

http://pastebin.com/yN0eXKZm

সম্পাদনা: 500:

আচেন -> মুরগী ​​-> অতএব -> উত্সাহী -> প্রবন্ধ -> আইল -> অসুস্থ -> নেতৃত্বাধীন -> খাত্তর -> জারবিল -> দ্বিপক্ষীয় -> রাইলিং -> উদ্ভাবনী - -> ক্ষমতাচ্যুত -> ক্লান্তিকর -> উত্সাহী -> তেরবিট -> বিট -> বিচড -> হেজহোগ -> হোগ -> হোগান -> গ্যান্ডার -> ট্রেন -> অ্যালারনস -> সূচনা -> সেট -> সেটব্যাক -> স্বীকৃতি -> এনটেল -> লেজার -> এারস্যাটজ -> জাস্ট -> প্রতিষ্ঠিত -> হিজারো -> সারি -> রোবোট -> ওট - -> ওটেন -> দশ -> টেনেবল -> ব্লিচ -> ache -> সস্তা -> কলম -> দণ্ড -> জেস্টফুল -> ফুলক্রা -> কাঁকড়া -> রাব্বিনিকাল -> calabash -> ছাই -> লজ্জা -> পদক -> ডেল -> আলে -> সতর্ক -> ক্লান্তিকর -> চক্রান্ত ->স্লাইস্ট -> প্রতিষ্ঠিত করে -> হিঙ্ক -> দ্বিধা -> পিঁপড়া -> অ্যান্টাসিড -> সিডার -> পদক্ষেপযুক্ত -> খাঁজ -> গর্ভজাত -> ক্লান্তি -> রচনা -> বলুন - -> বলছেন -> উদ্ভাবনীভাবে -> স্লাইনেস -> প্রবন্ধ -> উদ্দীপনা -> উত্সাহ -> উদ্দীপনা -> প্রাবন্ধিক -> ইসথমাস -> মাসকট -> বিড়াল -> বিপর্যয়যুক্ত -> ইঁদুর -> বরফ -> আইসবার্গ -> ইরগ -> ইরগোনমিক -> মাইক্রা -> কাঁকড়া -> বিছানা -> বিছানা -> লেসবিয়ানদের -> উত্তর -> ছিল -> আগে - -> খাড়া করা -> নিবন্ধ -> প্রতিষ্ঠা -> ইনজেস্টিং -> ইনজেশন -> আয়ন -> আয়নায়ন -> আয়নাইজার -> শূন্য -> ইরোড -> আড -> আডস -> desalinates -> পরীক্ষা -> প্রতিষ্ঠা - -> entailing -> ingot -> পেয়েছে -> অর্জিত ->ভাড়াটিয়া -> বিরোধী -> ইসথমিউস -> তিল -> আমেবাস -> বেসাল -> সালামেড -> মেডেলিয়ান -> আয়নাইজিং -> আইগ্রেনিং -> ইনগ্রেনস -> ইনস -> পাগল - -> উপাখ্যান -> ট্যাল্ক -> অ্যালকোহল -> ধরে রাখুন -> পুরাতন -> ওল্ডেন -> ডেন -> অস্বীকৃতি -> ইউরিয়া -> পৌঁছনো -> অ্যাসেড -> হেজেস -> গ্যাস্টেটস -> টেস্টেবল -> ব্লিচড -> হেজিং -> ইন্টিগ্রেটস -> টেস্টামেন্ট -> আটকা পড়ে -> চকচকে -> পদক -> উপকূড়া -> আকরিক -> ওরেগানো -> আনোডস - -> বিচ্ছিন্নকরণ -> অমিতকরণ -> টেস্টেটস -> পরীক্ষক -> তেরবিটস -> তার -> নিজেই -> এলফ -> এলফিন -> ফাইন -> ফাইনাল -> দ্যুতি -> ইন্টিরিটেটিং -> ইরগ্রেটেটিং -> গ্লিসারিন -> রাইন্ড -> bণী -> এসেন্সেস ->সিজারিয়ান -> জবাবদিহি -> ব্লিচার -> তার -> হেরাল্ড -> প্রবীণ -> লেনদেন -> উপাদান -> জড়িয়ে থাকা -> জড়িত -> ক্ষত -> আয়নোস্ফিয়ার -> উত্সাহ - -> আয়নোস্ফিয়ার -> পুনঃ বিক্রয় -> সতর্কতা -> ইনগ্রেশস -> তিল -> মেস -> মেসাস -> স্যাশ -> আশ্কান -> ক্যানার্ড -> আরডোর -> ডার্কেস্ট -> এস্টেট -> টেস্টস -> অণ্ডকোষ -> ক্লিনার -> নার্ডেস্ট -> সম্মানিত -> মেডেলস -> ইজারা -> দেখুন -> বদ্ধ -> উত্সর্গীকৃত -> অণ্ডকোষ - -> কম -> সেনেটস -> সাক্ষ্য -> সম্মান -> ইনগ্রাউন -> নিজস্ব -> মালিক -> স্নায়ু -> ভেসিক্যাল -> ক্লিস্ট -> এসটার -> টেরাবাইট -> টেস্টিস -> টিস্যু -> মামলা -> সোয়েড -> শোথ -> emaciates ->টেস্টোস্টেরন -> এক -> এক -> নীড় -> এস্টেটিস -> টেস্টি -> স্টাইল -> চোখ -> হ্যাঁ -> যিশিবাস -> ভাস্কুলার -> লার্চ -> দ্বিধায় - -> গ্লিসারিন -> অখাদ্য -> ব্লিকার -> কেরাটিন -> টিন -> টিঞ্চার -> মূত্রনালী -> নরক -> ক্যালামিন -> অশিক্ষিত -> ব্লাকচেস্ট -> এ্যাসথেটিক -> টিক -> টিক -> আইকিস্ট -> অনুমানযোগ্য -> ব্লিরিস্ট -> অনুমানক -> টর -> টর্চড -> হিজোনালিস্টিক -> টিকার -> কারচুইভস -> ভ্যাসিকস -> লেসেন্স - -> প্রত্যাহার -> সিডার -> সাহস -> হয় -> অঞ্চল -> পৌঁছনীয় -> রক্তপাত -> খাওয়া -> খাওয়া -> রক্তপাতকারী -> পদক্ষেপ -> প্রবেশ করুন -> পদ -> এরমিন -> অকার্যকর -> ব্লিপড -> প্যাডাগোগ -> গগল -> গ্রিনস ->জবাব দেওয়া -> লাল -> রেডব্রেস্ট -> অ্যাসিটার -> টার্মাগ্যান্ট -> বিরোধী -> টিকিট -> কেটলড্রাম -> রম -> রুম্বাস -> বেডাল্ট -> বেদী -> টার - -> ট্যারান্টুলাস -> লাসাগন -> জারলিলেস্ট -> বিস্তৃতি -> প্রবেশ করা -> রেডক্যাপ -> ক্যাপ -> সক্ষম -> ব্লিপস -> এপসিলন -> নিঃসঙ্গ -> বিস্তৃত -> অঙ্গভঙ্গি -> redcaps -> apse -> ছদ্মনাম -> nymphomania -> নিয়াসিন -> সিনচোনাস -> অনুনাসিক -> বিক্রয়যোগ্য -> মিশ্রণ -> শেষ -> বিপন্ন -> জেরিয়াট্রিক - -> চাল -> আইসবাউন্ড -> undeceives -> ভ্যাস্পার -> প্রতি -> পেরামামুলেটর -> টয় -> আকরিক -> রিসেল -> কম -> সেরা -> যুগ -> যুগ -> ফুসকুড়ি -> এশেন -> মুরগী ​​-> মানুষ -> ম্যানেল -> পরিষ্কার ->ইস্ট্রোজেন -> জেন্ডারমেটস -> ম্যাস্কেল -> ক্যালসিন -> অদক্ষ -> বিনোদনমূলক -> গ্লিসারল -> ভূমিকা -> ওলিন্ডার -> বিনোদন -> বিনোদন -> বিনোদন -> উন্মাদ - -> মিশ্রিত -> উত্সর্গীকৃত -> সিডার -> আর্সেনিক -> দুর্দান্ত -> আইসবক্স -> বাক্স -> বক্সকার -> গাড়ি -> ক্যারাকুল -> কালেন্ডার -> ড্রেঞ্জ -> অঙ্গভঙ্গি -> পুনঃনির্ধারিত -> পাঠ -> পুত্র -> সোনার -> নারক -> আরকিড -> অ্যাডিনয়েডাল -> ডেলস -> লেজার -> শরবত -> বাজি - -> বিটেন -> কেন -> কেনস -> টিকিট -> ব্লেন্ডার -> উপহাস -> ধারণা -> ডিকন -> কন -> অবতল -> প্রতিশোধ নেওয়া -> জার্মানি -> রক্তাল্পতা -> মিয়াউড -> বিবাহ -> বিবাহ -> ছাড়যোগ্য -> দান - -> অন্তরে ->সমস্ত -> আললে -> লেইওয়ে -> লায়েওয়ে -> উপায় -> পথশিশু -> পুনরায় -> দৌড় -> রানার -> হেরাল্ড -> ছাড়যোগ্য -> আশীর্বাদ -> সেডান - -> নাচ -> সিডস -> ডেসেন্ট -> অ্যান্টিটার -> মেডডেলসম -> ওমেগাস -> গ্যাস -> গ্যাশ -> আশ্রম -> ম্যাম -> র‌্যাম্বল -> বিস্ফোরিত -> লিউডার -> ড্রেডস -> অবতরণ -> বিপন্ন -> রেডকোট -> শপথ -> এথেরোস্ক্লেরোসিস -> সিস -> সিসাল - -> সালাদ -> ল্যাড -> মই - -> ডেরাইভেটিভস -> জাহাজ -> কদাচিৎ -> ডোমেন -> লিখিত -> বিছানা -> বাগ -> বাগবা -> বু -> বুদ -> বিছানা -> ডেরিভ -> শংসাপত্র -> gesundheit -> হয় -> হেরাল্ডিক -> পাশা -> আইস ব্রেকার -> কেরোসিন -> এেনিমা -> ইমেল ->অসুস্থতা -> সিংহাসন -> প্রলোভন -> ব্যবহার -> ব্যবহৃত -> উপশহর -> টার্মিনেটর -> টুডর -> সুপ্ত -> অ্যান্টবেলাম - -> লুম্বগো -> পূর্বে -> বেদনাদায়ক - -> গ্লাইকোজেন -> লিঙ্গ -> চর্মরোগ -> অপব্যবহার -> প্রত্যাখ্যান -> অশ্লীল -> প্রলোভিত -> শৃঙ্খলা -> ভেস্টমেন্ট -> উত্সাহী -> আট্টরিক -> টিরেডস -> বংশধর -> পূর্বসূরি -> প্রলোভন -> আইসিকিপ -> ক্যাপাসিটার -> যন্ত্রণা -> প্রলোভিত -> সিডিলা -> লামা -> অমলগাম -> গাম্বিট -> বিছা -> দ্বিধা - -> সাক্ষ্যদান -> ইন্টিগ্রেট -> খেয়েছে -> এটেলিয়ার্সলিঙ্গ -> চর্মরোগ -> অপব্যবহার -> রেন্ডিন্ড -> অশ্লীল -> প্রলোভিত -> শোষক -> বেষ্টন -> উত্সাহী -> আশিদার -> টিরেডস -> বংশধর -> পূর্বসূরি - -> প্রলোভন -> আইসিকিপ -> ক্যাপাসিটার -> যন্ত্রণা -> প্রলোভনযুক্ত -> সিডিলা -> লামা -> অমলগাম -> গাম্বিট -> বিছা -> দ্বিধা -> সাক্ষ্য -> ইন্টিগ্রেট -> খেয়েছেন -> এটেলিয়ার্সলিঙ্গ -> চর্মরোগ -> অপব্যবহার -> রেন্ডিন্ড -> অশ্লীল -> প্রলোভিত -> শোষক -> বেষ্টন -> উত্সাহী -> আশিদার -> টিরেডস -> বংশধর -> পূর্বসূরি - -> প্রলোভন -> আইসিকিপ -> ক্যাপাসিটার -> যন্ত্রণা -> প্রলোভনযুক্ত -> সিডিলা -> লামা -> অমলগাম -> গাম্বিট -> বিছা -> দ্বিধা -> সাক্ষ্য -> ইন্টিগ্রেট -> খেয়েছেন -> এটেলিয়ার্স


2

গণিত 1482 1655

শুরু করার জন্য কিছু ...

dict=Import["words.txt"];
words=Union@Select[StringSplit[dict],(StringFreeQ[#,"'s"])\[And]StringLength[#]>2
  \[And]LowerCaseQ@StringTake[#,1]&]

লিঙ্কগুলি শব্দের জন্য ছেদকৃত উপসর্গ এবং প্রত্যয়।

prefixes=Union[StringTake[#,3]&/@words];
suffixes=Union[StringTake[#,-3]&/@words];
links=Intersection[prefixes,suffixes];
linkableWords=(wds=RandomSample@Select[words,MemberQ[links,StringTake[#,3]]\[And]MemberQ[links,StringTake[#,-3]]& ])/.
w_String:> {w,StringTake[w,3],StringTake[w,-3]}

প্রান্তগুলি একটি শব্দের থেকে অন্য শব্দের সমস্ত নির্দেশিত লিঙ্ক:

edges[{w_,fr_,fin_}]:= Cases[linkableWords,{w1_,fin,_}:> (w\[DirectedEdge]w1)]
allEdges=Flatten[edges/@linkableWords];
g=Graph@allEdges;

"Mend" এবং "উত্সাহ" এর মধ্যে একটি পাথ সন্ধান করুন।

FindPath[g, "begin", "end", {1480, 3000}, 1][[1]]

ফলাফল (1655 শব্দ)

{"mend", "endorser", "server", "vertebral", "rallying", "ingrains", 
"insurrectionist", "isthmus", "mussels", "elsewhere", "erection", 
"ionizes", "zestful", "fullness", "essaying", "ingeniously", 
"slyest", "estimator", "tornados", "doses", "sesame", "amebic", 
"bicycled", "ledges", "gestation", "ionizing", "ingratiates", 
"testifying", "ingesting", "inglorious", "ouster", "terminated", 
"tediousness", "essayist", "isthmuses", "session", "ion", 
"ionization", "ionospheres", "resubmitted", "tedious", "ousting", 
"ingest", "ester", "terminates", "testicle", "cleanliness", "essay", 
"say", "saying", "ingratiating", "ingratiatingly", "glycerine", 
"inefficient", "entrances", "cesarians", "answering", "ingenious", 
"ousted", "tediously", "sly", "slyness", "essences", "cesareans", 
"answer", "were", "erecting", "ingredient", "enterprises", 
"sessions", "onshore", "oregano", "anorak", "raking", "ingraining", 
"ingrown", "owner", "nerdiest", "estranging", "ingot", "gotten", 
"tendonitis", "tissue", "suede", "edelweiss", "issuing", "ingestion", 
"ionosphere", "erections", "onset", "settles", "lesion", "ionizer", 
"zeroing", "ingresses", "sesames", "mesmerizing", "ingrates", 
"testes", "testiest", "estrangement", "entail", "ail", "ailment", 
"entice", "icecap", "captivates", "testy", "sty", "stylistic", 
"tickles", "lessee", "seeded", "deductibles", "lesser", 
"servicewoman", "many", "anymore", "ores", "resourceful", "fullback", 
"acknowledgment", "entertainer", "nerves", "vest", "esteemed", 
"mediates", "testament", "entered", "redbreast", "astonishes", 
"hesitatingly", "glycogen", "genera", "eras", "rashes", "hesitates", 
"testicles", "lest", "establishment", "entwines", "nest", "estates", 
"testates", "testosterone", "oneself", "elf", "elfin", "fingered", 
"redcaps", "apse", "pseudonym", "nymphomania", "niacin", "cinemas", 
"masochistic", "tickled", "led", "ledger", "geriatric", "rice", 
"icebreaker", "kerosine", "inexperienced", "ceded", "deductible", 
"blew", "lewder", "derivable", "blemished", "hedgerow", "rowel", 
"welfare", "arena", "enamel", "melded", "dedicates", "tester", 
"terabit", "bitmap", "mapped", "pedicures", "restored", "redeemer", 
"merchantman", "manipulator", "torpedos", "dosed", "seduced", 
"cedilla", "llano", "another", "heretic", "tic", "ticker", "keratin", 
"tinctures", "restaurateur", "euros", "rosettes", "testable", 
"bleaker", "kerosene", "energizer", "zero", "eroded", "deduced", 
"cedar", "dare", "ares", "respondent", "entranced", "cedillas", 
"lasagnas", "nastiest", "esthetic", "ticket", "ketches", "hes", 
"hesitant", "antipasto", "stoppered", "redounded", "deducible", 
"bleeped", "pedant", "antimatter", "terminable", "blent", "enthuse", 
"user", "serenade", "adenoidal", "dales", "lessen", "sentimental", 
"talker", "kerchieves", "vestry", "try", "tryout", "outdone", "ones", 
"nestles", "lesson", "songwriter", "terrapin", "pinched", 
"hedonistic", "tick", "ickiest", "established", "hedgehog", "hogan", 
"gander", "derringer", "gerbil", "billboard", "ardor", "dorkiest", 
"estrogen", "gent", "entirety", "etymological", "calk", "alkalis", 
"lissome", "omegas", "gasolene", "enema", "emaciates", "test", 
"estranges", "gestured", "redeemed", "medic", "diced", "cedars", 
"arsenic", "nice", "iceberg", "erg", "ergonomic", "microcomputer", 
"terser", "sergeant", "antipastos", "tost", "osteopathy", "thy", 
"thymus", "mussiest", "estimable", "blend", "endeavored", "redound", 
"undercover", "verbal", "balk", "alkali", "alibi", "ibis", "bison", 
"sonar", "narcosis", "sister", "terraced", "cede", "edema", 
"emancipator", "torpor", "portraiture", "urea", "reassign", 
"ignoble", "blenched", "hedges", "gesture", "urethras", "raspy", 
"spyglass", "ass", "assailant", "antiquarians", "answered", 
"reduced", "cedes", "despair", "airfares", "resumed", "medicine", 
"ineffable", "bleacher", "herdsmen", "menhaden", "dent", 
"entitlement", "enticement", "entangle", "gleamed", "medullas", 
"lassie", "sieve", "even", "vender", "derivatives", "vessel", 
"selectmen", "mentor", "toreador", "dormer", "meringue", "guerrilla", 
"llanos", "nosedove", "overact", "actionable", "bleeps", "epsilon", 
"longhorn", "ornament", "entreaty", "atypical", "calendar", "dares", 
"resurgent", "entreat", "eater", "term", "ermine", "inedible", 
"bleeder", "derrières", "resentful", "fulcra", "crabbed", 
"bedevilment", "entwine", "inelegant", "antitoxins", "inspired", 
"redder", "derides", "descendant", "antihistamine", "inequitable", 
"bleat", "eaten", "tenured", "redcap", "capstans", "answerable", 
"blender", "deranges", "gestures", "restart", "arteriosclerosis", 
"sis", "sisal", "saltpeter", "terrifyingly", "glycerin", "rink", 
"inkwell", "ellipsis", "sisterhood", "oodles", "lessor", "sorrowed", 
"wedges", "gesundheit", "either", "hereafter", "termite", "iterator", 
"tornado", "adobes", "bespoken", "ken", "kens", "ensnare", "area", 
"rear", "earful", "fulfil", "fillet", "letdown", "ownership", 
"hipped", "pediatric", "richer", "heretical", "calculus", "lusher", 
"heraldic", "dice", "icebound", "underscored", "redskins", "instant", 
"antiperspirant", "anthropomorphic", "hiccup", "cup", "cups", 
"upstage", "agendas", "dashingly", "glycerol", "role", "oleo", 
"leonine", "ineluctable", "blessed", "sedatives", "vesicles", 
"lessens", "ensured", "redefine", "inextinguishable", "bleach", 
"achoo", "hooch", "ocher", "hero", "erode", "ode", "odes", "desktop", 
"topple", "pleasured", "redeveloped", "pediment", "entrapped", 
"pederasty", "stylus", "lush", "usher", "hermaphrodite", "item", 
"tempos", "postpaid", "aide", "ideogram", "rampart", "artisan", 
"sandhog", "hog", "hogwash", "ash", "ashram", "rammed", "mediocre", 
"crestfallen", "lend", "endow", "downcast", "astronomer", 
"merriment", "entrant", "antiwar", "warden", "dentures", "restful", 
"fulfillment", "entrapment", "enthrall", "allay", "layout", 
"outbound", "underclassman", "manhole", "oleander", "dermis", 
"misused", "sedater", "terrific", "fiche", "cheapens", "ensnares", 
"restrains", "insolent", "entombed", "bedraggle", "gleeful", 
"fulfilment", "entrenchment", "entrap", "rapper", "persistent", 
"enthronement", "enthusiast", "astute", "uterus", "rustproofed", 
"fedora", "orangeades", "despised", "seducer", "ceramic", 
"microscopic", "picnic", "nicotine", "inexpedient", "entomb", 
"ombudsman", "mantel", "teletypewriter", "terminological", "calif", 
"lifetimes", "mescaline", "inertia", "tiaras", "raster", "terrace", 
"acetaminophen", "henchmen", "menhadens", "enslaves", "vesper", 
"peroxide", "ideograph", "aphid", "hides", "desideratum", "tumor", 
"mortgagee", "geegaw", "gawk", "awkward", "ardent", "enthused", 
"sediment", "enter", "termed", "mediaeval", "valentine", "inexact", 
"actives", "vestment", "entourage", "agent", "entryway", "wayside", 
"idea", "dear", "earache", "checkups", "upsides", "descent", 
"entertainment", "entomological", "calicos", "cosign", "ignored", 
"redcoat", "oaten", "tensed", "sedan", "dank", "anklet", "lettered", 
"redskin", "kingpin", "pinups", "ups", "upshot", "hotbed", 
"bedtimes", "mes", "messenger", "germicides", "destitute", "utensil", 
"silencer", "cervix", "vixens", "ensign", "ignorant", "antipasti", 
"stimulus", "lusty", "stymie", "miens", "enslave", "averred", 
"redrew", "rewritten", "tenpins", "instructor", "torrent", 
"entertains", "insult", "ultrasound", "undersides", "despoil", 
"oilcloth", "other", "hereupon", "pondered", "redundant", "anthill", 
"ill", "illicit", "citizens", "ensnared", "rediscovered", "redesign", 
"ignoramus", "muskmelon", "longer", "gerrymander", "deride", "ideas", 
"easy", "asylum", "lumbermen", "mendicant", "antlered", "redevelop", 
"lopes", "pester", "terrapins", "instil", "tildes", "deserves", 
"vesicle", "cleave", "avenger", "germane", "anemia", "miasmas", 
"mash", "ashy", "shy", "shyster", "termagant", "antiaircraft", 
"afterglow", "lowland", "and", "androgen", "genitalia", "liars", 
"arson", "sonatas", "taste", "stepsister", "termini", "initiator", 
"tor", "torn", "ornamental", "tallow", "lowered", "red", "redraft", 
"aft", "aftertaste", "stereotypes", "pesky", "skyrocket", 
"kettledrum", "rummer", "merciful", "fulsome", "omens", "ensures", 
"resultant", "antennas", "nasal", "saleswoman", "mane", "anemometer", 
"terrains", "insightful", "fulcrum", "rumbas", "baseman", 
"mannikins", "insures", "resound", "underpass", "assassins", "inset", 
"settee", "teethe", "theological", "calf", "alfresco", "scornful", 
"fulfill", "illustrator", "torpid", "pidgin", "gins", "instal", 
"talc", "alcove", "overtakes", "kestrel", "relabel", "beleaguered", 
"redraw", "rawhide", "identical", "caliber", "beret", "retrace", 
"acetylene", "enemas", "massacred", "redeploys", "oyster", 
"terminator", "tortillas", "last", "astronomical", "calliope", 
"operator", "tort", "orthographic", "hiccups", "upstart", 
"artificer", "cervical", "callus", "lustre", "trend", "endeavor", 
"vortex", "textures", "researcher", "heroins", "instill", "illegal", 
"galloped", "pedagogical", "callipered", "rediscover", "vertebra", 
"brasher", "herbicides", "descry", "cryptogram", "ramrod", "rodeo", 
"deodorizer", "zeros", "rosebush", "ushered", "redden", "denatures", 
"reset", "setups", "upside", "ides", "describes", "besides", 
"desperado", "adores", "reshuffle", "flea", "leaflet", "lethal", 
"halibut", "but", "button", "tonic", "niche", "cherubim", "bimbos", 
"bosun", "sunk", "unkind", "indentures", "resend", "endures", 
"restorer", "reran", "rang", "anger", "germicide", "ideological", 
"calabash", "ashamed", "medical", "caloric", "rickshas", "hasten", 
"tendon", "donkey", "keyword", "ordains", "insecticides", "desires", 
"resin", "sins", "inspector", "torrid", "rid", "rides", "despot", 
"potpie", "piebald", "aldermen", "menace", "ace", "acerbic", "bicep", 
"cephalic", "lichen", "hennas", "nasty", "styes", "yesterday", "day", 
"daybed", "bedridden", "dental", "talisman", "mankind", "indignant", 
"antique", "questionnaires", "resubmit", "mitten", "tenfold", "old", 
"olden", "denudes", "design", "ignores", "resumes", "mesdames", 
"mesas", "sass", "assemblywoman", "mangle", "glee", "leeway", 
"waylay", "laywomen", "menswear", "ear", "earldom", "domains", "ins", 
"instrumental", "tall", "all", "allegorical", "calm", "almanac", 
"nacre", "credit", "dittos", "tossup", "superman", "mandolin", 
"linesman", "manacle", "cleverer", "rerun", "runaway", "way", 
"wayfarer", "reruns", "unshaven", "ventures", "resell", "elliptical", 
"calmer", "mercuric", "ricochet", "heterodoxy", "oxymora", 
"orangutang", "angina", "inapt", "apt", "aptitudes", "descend", 
"endear", "earlobes", "bestowal", "walleyes", "yes", "yeshivas", 
"vassal", "saltcellar", "larval", "valiant", "anthropological", 
"calfskin", "kind", "inductee", "tee", "teenager", "gerund", 
"underclass", "assemblyman", "manservant", "antelopes", "peso", 
"esoteric", "rickshaw", "hawser", "servicewomen", "mental", 
"tallyhos", "hospital", "talon", "longshoremen", "men", "menthol", 
"holography", "phylum", "lumberman", "manikin", "kingpins", 
"install", "allures", "resuscitator", "tortilla", "llamas", 
"massacres", "resistor", "tormentor", "torque", "queasy", 
"asymmetric", "ricksha", "sharped", "pedlar", "largos", "gossamer", 
"merganser", "service", "icebox", "boxer", "xerography", "physical", 
"calculator", "tortures", "resonant", "anticlimax", "maxima", "imam", 
"mammon", "monograph", "aphelia", "liaison", "sonic", "nicknamed", 
"media", "diametrical", "calliper", "performed", "medulla", "llama", 
"amalgam", "gamins", "insulin", "lineman", "mantra", "transplant", 
"antigen", "genres", "respires", "resold", "oldie", "diesel", 
"seldom", "domed", "medieval", "valor", "lordship", "hipper", "per", 
"perspires", "restores", "restructures", "resort", "orthodoxy", 
"oxygen", "gentlemen", "menopausal", "saltpetre", "treacle", 
"cleaver", "verdigris", "risen", "send", "end", "endemic", 
"microfiche", "checkout", "outclass", "assault", "ultraviolet", 
"let", "letterbox", "boxcar", "carom", "roman", "manifesto", 
"stovepipes", "pesticides", "described", "bedsides", "descant", 
"anthem", "hempen", "penguins", "insignificant", "antebellum", 
"lumbar", "barracudas", "dash", "ashcan", "cannonball", "allover", 
"verbena", "enamor", "morgue", "guerrillas", "lash", "ashen", 
"henchman", "mandolins", "inspires", "resistant", "antechamber", 
"bereave", "aver", "vermin", "minim", "nimbus", "bus", "businessman", 
"mantras", "rasp", "asphalt", "altogether", "her", "hereabout", 
"outcast", "astrological", "calisthenic", "nicknames", "mescal", 
"calliopes", "pesetas", "tassel", "selectman", "mannikin", 
"kinswoman", "man", "manic", "nicer", "cerebra", "bravado", "adobe", 
"obeisant", "antiparticle", "clever", "versus", "sushi", "shirr", 
"irrelevant", "antelope", "open", "pentagon", "gonad", "nadir", 
"directorship", "hippopotami", "amid", "midwifed", "fedoras", 
"rasher", "herbal", "ball", "allot", "lot", "lotus", "tussle", 
"sledgehammer", "merchant", "ant", "antidepressant", "anther", 
"heraldry", "drywall", "allegros", "rosebud", "budgerigar", 
"garbageman", "manikins", "inscribes", "bestow", "townsmen", "menu", 
"enures", "restaurant", "antithetical", "calico", "icon", "confound", 
"underbid", "bidden", "denser", "seraphic", "hiccuped", "pedigree", 
"reeve", "ever", "vertical", "caliper", "perusal", "salami", "amir", 
"mires", "restraint", "interstellar", "larkspur", "puritanical", 
"calligrapher", "herdsman", "manatee", "teepee", "peeve", "everyday", 
"daydreamer", "meres", "result", "ultimatum", "tumbril", "rill", 
"illogical", "calligraphy", "physic", "sickbed", "bedsores", 
"resolver", "vertebras", "rascal", "call", "allergenic", "nickname", 
"amebas", "baste", "stepson", "son", "sonnet", "net", "nether", 
"heros", "rosins", "insular", "larvas", "vast", "astrakhan", 
"handyman", "manicures", "resins", "instep", "tepid", "pidgins", 
"inscribed", "bedbug", "bug", "bugbear", "earwax", "waxen", 
"xenophobia", "biathlon", "longhair", "airstrip", "ripple", "pleas", 
"eastbound", "underachiever", "verbatim", "timbre", "brew", 
"rewound", "underplay", "laywoman", "mandarins", "insofar", "farm", 
"armpit", "pitcher", "herald", "alderman", "mangos", "gossip", 
"sipped", "pedagogue", "guerillas", "laser", "serape", "aped", 
"pederast", "astound", "underground", "underpins", "insane", 
"anemic", "micra", "crane", "anew", "new", "newscast", "astir", 
"tiro", "ironware", "are", "areas", "east", "astronomic", 
"microchip", "hippopotamus", "mustache", "chervil", "villas", "lass", 
"assassin", "sinew", "newsman", "mangrove", "overtax", "taxicab", 
"cabana", "anathemas", "mast", "astronaut", "author", "horoscope", 
"opera", "eraser", "serfdom", "dominos", "nostrum", "rumpus", "pus", 
"pushcart", "arthropod", "podia", "diatom", "tomboy", "boycott", 
"ottoman", "manhunt", "untidy", "idyllic", "licensee", "seethe", 
"thereabout", "outplay", "layoff", "officer", "cerebrum", "rum", 
"rumple", "plethora", "oracle", "clergyman", "maneuver", "verandas", 
"dashikis", "kisser", "serum", "rumor", "morbid", "bidet", "detach", 
"achiever", "vertex", "text", "extremer", "merino", "inopportune", 
"uneaten", "tensor", "sort", "orthopedic", "dickie", "kielbasas", 
"sashay", "hayloft", "often", "ten", "tenpin", "pinkeye", "eyeball", 
"allegro", "grout", "outfox", "fox", "foxtrot", "rot", "rotund", 
"underwear", "earshot", "hot", "hotshot", "hotel", "telex", 
"lexicon", "congresswoman", "manor", "northbound", "undertow", 
"township", "hippos", "possessor", "sorbet", "betcha", "chart", 
"art", "article", "clear", "earwig", "wigwam", "wampum", "pummel", 
"melodic", "dictum", "tumbrel", "relic", "licit", "citadel", "delay", 
"lay", "laypeople", "plectra", "traumas", "mascot", "cotyledon", 
"donor", "nor", "normal", "malt", "altar", "tart", "artiste", 
"stencil", "cilantro", "trouper", "pericardia", "diadem", "democrat", 
"rattan", "tang", "angstrom", "romper", "perturb", "urban", "bang", 
"angel", "gelatin", "tint", "intros", "rostra", "trapper", 
"persimmon", "monsignori", "origin", "ginkgos", "gospel", "pelvis", 
"visor", "sorghum", "humid", "midair", "air", "airfoil", "oil", 
"oilskin", "kin", "kindergarten", "tentacle", "cleanser", "sermon", 
"monolog", "logarithmic", "microbes", "bestir", "tiros", "rosin", 
"sin", "singleton", "tonsil", "silicon", "con", "constraint", 
"intagli", "glint", "interwove", "overshadow", "downtrodden", 
"dentin", "tin", "tinsel", "sellout", "out", "output", "put", 
"putsch", "schoolmarm", "arm", "armor", "moribund", "underpin", 
"pint", "interloper", "periwig", "wig", "wigwag", "wagon", 
"gonorrhea", "hearten", "tenon", "nonverbal", "balsam", "samovar", 
"varmint", "interviewee", "weeper", "perturbed", "bed", "bedpan", 
"panache", "chestnut", "nut", "nutmeg", "meg", "megalopolis", 
"lissom", "somersault", "ultra", "tram", "ramp", "amputee", "teeth", 
"ethos", "hos", "hostel", "telescopic", "picayune", "uneven", 
"vendor", "dorsal", "salad", "ladybug", "bugaboo", "boomerang", 
"angora", "orangutan", "tandem", "demagogry", "gryphon", 
"honeycombed", "bedlam", "lamb", "ambergris", "risky", "sky", 
"skycap", "capstan", "tannin", "ninepin", "pinpoint", "interpret", 
"retiree", "reefer", "fer", "ferret", "returnee", "needlepoint", 
"interurban", "bantam", "tamp", "ampul", "pullout", "outrun", 
"runabout", "outstrip", "rip", "ripen", "pennon", "nonfat", "fathom", 
"homespun", "puns", "unsubscribes", "besom", "sombre", "breathe", 
"theatre", "tremor", "mortar", "tarpaulin", "lintel", "telethon", 
"honeydew", "dewlap", "lap", "lapel", "pelvic", "victim", "timpani", 
"animus", "muscat", "cat", "catsup", "sup", "superstar", "taro", 
"arousal", "salamis", "misprint", "interwoven", "venom", "nomad", 
"madam", "dam", "dampen", "penicillin", "lint", "intercom", 
"compound", "underpay", "pay", "payoff", "off", "offal", "fallout", 
"outwit", "withal", "halt", "altho", "tho", "thou", "housebound", 
"undergrad", "radio", "diocesan", "sanserif", "riffraff", 
"affidavit", "vitamin", "minicam", "campus", "pussycat", "catamaran", 
"rancor", "cornucopia", "piano", "anon", "non", "nonpartisan", 
"sandbar", "bar", "barren", "renewal", "walkout", "outruns", 
"unsnap", "naphtha", "thalamus", "musky", "skydove", "overrun", 
"run", "runs", "unsheathe", "the", "theorem", "remove", "overreach", 
"ache", "cherub", "rubes", "beseech", "echo", "chosen", "sensor", 
"sorrel", "relay", "layman", "mantillas", "lasagna", "gnat", 
"natures", "resonator", "torus", "russet", "set", "setback", 
"acknowledgement", "entanglement", "entombment", "entourages", 
"gestates", "testing", "ingratiate", "ate", "ateliers", "ersatzes", 
"zest"}

1

পাইথন, 90

আপেনড ডিডাকটিবেলস লেসী ওয়েড ওয়েড ডিডুয়েস সিজারিয়ানস জবাবদিহি তিলগুলি মেশা দ্বিধা আয়নোস্ফিয়ার ইওনাইজার জিরো ইওড ওড ওডস ডিটারার টার্মিনেশনস অনিয়াস ইওরসের বাসিন্দা আদর্শবাদী টিক টিকলস লেস গানের চলমান ইন্ট্রাইনস ইনবিলাল র্রেস্টিং ইস্ট্রেস্টিং রিসার্জেস্ট্রেস রিসার্জেস্টারস ইনসেস্টেসেন্ট রিসার্জেস্টারস অঙ্গভঙ্গি মূত্রনালী র‌্যাশ দ্বিধাগ্রস্থ অ্যান্টিক্লিম্যাক্স ম্যাক্সিমার কল্পনা করে নিরবচ্ছিন্নভাবে স্লাইনেস এসেন্সেন্স সিজারিয়ান উত্তর পরীক্ষা করা ভেলওভের ভেস্ট মান্য মেডডলসম ওমেলেট লেটুসেস সায়েন্স আয়নাইজেশন আইওনাইজিং ইনজেশন আইওনোস্ফেস রেসকিউ ইনসিডিং ওপেনসিটি হিপ্পিজ পিসিটিস ইমেজিজিটি ইনসিওমিটিস

প্রথমে আমি সমস্ত মুছে ফেলে ম্যানুয়ালি তালিকাটি পরিষ্কার করি

  • মূলধনী চিঠিযুক্ত শব্দগুলি
  • অ্যাডাস্ট্রোফের সাথে শব্দগুলি
  • words সহ শব্দ
  • 1- এবং 2-অক্ষরের শব্দ

এটি আমার পক্ষে সর্বোচ্চ 2 পয়েন্ট ব্যয় করে কারণ এই শব্দগুলি কেবল শৈলের শুরুতে বা শেষের দিকে হতে পারে তবে এটি শব্দের তালিকাটি 1/3 দ্বারা হ্রাস করে এবং আমি ইউনিকোডের সাথে ডিল করতে পারি না।

এরপরে আমি সমস্ত পূর্ব এবং প্রত্যয়গুলির একটি তালিকা তৈরি করব, ওভারল্যাপটি সন্ধান করব এবং সমস্ত শব্দের বাতিল করবো যদি না পূর্ববর্তী এবং প্রত্যয় দুটি ওভারল্যাপ সেটে থাকে। আবার এটি আমার সর্বাধিক অর্জনযোগ্য স্কোরকে ছাড়িয়ে সর্বাধিক 2 পয়েন্টে ছাঁটাই করে, তবে এটি শব্দের তালিকাটি মূল আকারের তৃতীয় অংশে হ্রাস করে ( শর্ট_লিস্টে আপনার অ্যালগরিদম চালানোর চেষ্টা করুন ) একটি সম্ভাব্য জন্য ) এবং বাকী শব্দগুলি অত্যন্ত সংযুক্ত (কিছু 3 বাদে) -প্লেটার শব্দ যা কেবল নিজের সাথে সংযুক্ত থাকে)। প্রকৃতপক্ষে, প্রায় যে কোনও শব্দ থেকে গড় 4 টি প্রান্তের কোনও পথ দিয়ে অন্য কোনও শব্দ থেকে পৌঁছানো যায়।

আমি সংলগ্ন ম্যাট্রিক্সে লিঙ্কগুলির সংখ্যা সঞ্চয় করি যা সমস্ত ক্রিয়াকলাপকে সহজতর করে এবং আমাকে ঠেকানো পদক্ষেপগুলি দেখতে দেয় যেমন n পদক্ষেপগুলি এগিয়ে যাওয়া বা চক্র গণনা করা ... কমপক্ষে তত্ত্বে, যেহেতু আমি ম্যাট্রিক্সকে বর্গ করতে প্রায় 15 সেকেন্ড সময় নেয় কারণ আমি আসলে করি না অনুসন্ধানের সময় এই। পরিবর্তে আমি এলোমেলো উপসর্গটি শুরু করি এবং এলোমেলোভাবে ঘুরে বেড়াচ্ছি, হয় সমানভাবে সমাপ্তি বাছাই করে, প্রায়শই ঘটে যাওয়া ('-িং'-এর মতো) বা কম প্রায়ই ঘটে এমনদের পক্ষপাতী।
তিনটি রূপই সমানভাবে স্তন্যপান করে এবং 20-40 পরিসরে চেইন উত্পাদন করে, তবে কমপক্ষে এটি দ্রুত। অনুমান করি আমি সর্বোপরি পুনরাবৃত্তি যুক্ত করব।

from numpy import *
f = open('words_short.txt')
words = f.read().split() # 62896
f.close()

prefix = [w[:3] for w in words]     # 2292
suffix = [w[-3:] for w in words]    # 2262
common = set(prefix) & set(suffix)  # 1265

PSW = [(p,s,w) for (p,s,w) in zip(prefix, suffix, words) if p in common and s in common] # 28673
common = list(common)
mapping = dict(zip(common, range(len(common)))) # enumerate trigrams

M = zeros((len(common), len(common)), dtype=int) # for fast processing
W = [[[] for i in range(len(common))] for j in range(len(common))] # for reconstruction
for p,s,w in PSW: # build adjacency matrix
    M[mapping[p], mapping[s]] += 1
    W[mapping[p]][mapping[s]].append(w)

def chain(A, rho=0):
    B = array(A)
    links = []
    start = random.randint(len(B))
    links.append(start)
    while 1:
        nextpos = where(B[links[-1],:]>0)[0]
        if len(nextpos)==0: return links
        nextnum = B[links[-1],nextpos]

        p = ones(len(nextnum))/len(nextnum) # pick uniformly
        if rho>0: p = nextnum*1./sum(nextnum) # prioritize many links
        if rho>1: p = 1/p; p = p/sum(p) # prioritize few links

        chosen = random.choice(nextpos, p=p)
        B[links[-1], chosen] -= 1
        links.append(chosen)

def chain2words(L):
    # can only be used once because of .pop()
    z = zip(L[:-1],L[1:])
    res = []
    for p,s in z:
        res.append(W[p][s].pop())
    return res

chains = [chain(M) for i in range(100)]
bestchain = chains[argmax(map(len, chains))]
print ' '.join(chain2words(bestchain))

মূলত আমি অনুরূপ কিছু করার চেষ্টা করতে চেয়েছিলেন এই কিন্তু যেহেতু এই চক্র সঙ্গে একটি নির্দেশ গ্রাফ হয়, ভারী পরিবর্তন ছাড়াই ভূ বাছাইকরণ, দীর্ঘতম পথ, বৃহত্তম Eulerian পাথ অথবা চীনা পিয়ন সমস্যা কাজের জন্য মান আলগোরিদিম কেউই।

এবং দেখতে সুন্দর লাগছে বলেই, সাদা = ননজারো এন্ট্রি সহ এখানে ম্যাট্রিক্স এম, এম ^ 2 এবং এম ^ ইনফিনিটি (অনন্ততা = 32, এটি পরে পরিবর্তন হয় না) এর একটি চিত্র
এখানে চিত্র বর্ণনা লিখুন


তাহলে আপনার স্কোর 90? যদিও ইতিমধ্যে আমাদের 1700+ এন্ট্রি রয়েছে .. আমি যে কোনও কিছু মিস করছি?
অপ্টিমাইজার

1
প্রথমত আমি এখনও এটিতে কাজ করছি, তবে এগুলি বাদ দিয়ে - মনে হয়েছিল এটি একটি ভাল ধারণা, আমি চেষ্টা করেছিলাম, এটি ব্যর্থ হয়েছিল। যদি কিছু হয় তবে এটি একই পদ্ধতি ব্যবহার করে লোককে সময় নষ্ট করা থেকে বিরত
রাখবে

হি :) ইতিবাচক মনোভাব বজায় রাখুন :) এটি আরও ভাল ফলাফল দেখার আশা করি।
অপ্টিমাইজার

2
" এই শব্দগুলি কেবল শৃঙ্খলার শুরুতে বা শেষে হতে পারে " ভুল incor গ্রাফের বৃহত্তম সংযুক্ত উপাদানটির মধ্যে বাউটোনিয়ার্সের মতো শব্দ রয়েছে যা একটি উচ্চারণযুক্ত চরিত্র রয়েছে তবে উপসর্গ বা প্রত্যয়টি নয়। এটি কেবলমাত্র এক ডজন বা আরও শব্দগুলিকে প্রভাবিত করে, তবে এর মধ্যে একটি মূল লিঙ্ক হতে পারে।
পিটার টেলর
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.