Kaip išspręsti sudėtingą sudoku. Matematikai sugalvojo Sudoku sprendimo formulę

Sudoku laukas yra 9x9 langelių lentelė. Kiekviename langelyje įvedamas skaičius nuo 1 iki 9. Žaidimo tikslas – išdėstyti skaičius taip, kad kiekvienoje eilutėje, stulpelyje ir kiekviename 3x3 bloke nebūtų pasikartojimų. Kitaip tariant, kiekviename stulpelyje, eilutėje ir bloke turi būti visi skaičiai nuo 1 iki 9.

Norėdami išspręsti problemą, kandidatus galima įrašyti tuščiuose langeliuose. Pavyzdžiui, apsvarstykite langelį 2-ame 4-osios eilutės stulpelyje: stulpelyje, kuriame jis yra, jau yra skaičiai 7 ir 8, eilutėje - skaičiai 1, 6, 9 ir 4, bloke - 1, 2, 8 ir 9 Todėl šiame langelyje išbraukiame 1, 2, 4, 6, 7, 8, 9 ir lieka tik du galimi kandidatai - 3 ir 5.

Panašiai svarstome galimus kandidatus į kitas ląsteles ir gauname šią lentelę:

Su kandidatais įdomiau bendrauti, gali būti taikomi įvairūs loginiai metodai. Toliau apžvelgsime kai kuriuos iš jų.

Vienišiai

Metodas susideda iš vienetų suradimo lentelėje, t.y. langeliai, kuriuose galimas tik vienas skaitmuo, o ne kitas. Šį skaičių įrašome šiame langelyje ir neįtraukiame į kitus šios eilutės, stulpelio ir bloko langelius. Pavyzdžiui: šioje lentelėje yra trys „vienišiai“ (jie paryškinti geltonai).

pasislėpę vienišiai

Jei ląstelėje yra keli kandidatai, bet vieno iš jų nėra jokiame kitame tam tikros eilutės langelyje (stulpelyje ar bloke), toks kandidatas vadinamas „paslėptu vienišu“. Šiame pavyzdyje kandidatas "4" žaliame bloke yra tik centriniame langelyje. Taigi, šioje ląstelėje tikrai bus „4“. Šiame langelyje įrašome „4“ ir išbraukiame iš kitų 2 stulpelio ir 5 eilutės langelių. Panašiai geltoname stulpelyje kandidatas „2“ pasitaiko vieną kartą, todėl šiame langelyje įrašome „2“ ir iš 7-osios eilutės langelių bei atitinkamo bloko neįtraukiame „2“.

Ankstesni du metodai yra vieninteliai metodai, kurie vienareikšmiškai nustato ląstelės turinį. Šie metodai leidžia tik sumažinti kandidatų skaičių ląstelėse, o tai anksčiau ar vėliau prives prie vienišių arba pasislėpusių vienišių.

Užrakintas kandidatas

Kartais kandidatas bloke yra tik vienoje eilutėje (arba viename stulpelyje). Dėl to, kad viename iš šių langelių būtinai bus šis kandidatas, šis kandidatas gali būti pašalintas iš visų kitų šios eilutės (stulpelio) langelių.

Toliau pateiktame pavyzdyje centriniame bloke kandidatas "2" yra tik centriniame stulpelyje (geltoni langeliai). Taigi vienas iš šių dviejų langelių tikrai turi būti „2“, o jokie kiti langeliai toje eilutėje už šio bloko negali būti „2“. Todėl „2“ gali būti pašalintas kaip kandidatas iš kitų šio stulpelio langelių (žalias langeliai).

Atidarykite Pairs

Jei dviejuose grupės langeliuose (eilutė, stulpelis, blokas) yra identiška kandidatų pora ir nieko daugiau, jokiuose kitose šios grupės ląstelėse negali būti šios poros vertės. Šie 2 kandidatai gali būti pašalinti iš kitų grupės langelių. Toliau pateiktame pavyzdyje kandidatai "1" ir "5" aštuntoje ir devintoje stulpeliuose sudaro atvirą porą bloke (geltoni langeliai). Todėl, kadangi vienas iš šių langelių turi būti „1“, o kitas turi būti „5“, kandidatai „1“ ir „5“ neįtraukiami iš visų kitų šio bloko langelių (žaliųjų langelių).

Tą patį galima suformuluoti 3 ir 4 kandidatams, jau dalyvauja atitinkamai tik 3 ir 4 ląstelės. Atviri trigubai: iš žalių langelių neįtraukiame geltonųjų langelių.

Atviros keturios: iš žalių langelių neįtraukiame geltonųjų langelių vertes.

paslėptos poros

Jei dviejuose grupės langeliuose (eilutė, stulpelis, blokas) yra kandidatų, tarp kurių yra identiška pora, kurios nėra jokiame kitame šio bloko langelyje, tai jokie kiti šios grupės langeliai negali turėti šios poros reikšmės. Todėl visi kiti šių dviejų ląstelių kandidatai gali būti atmesti. Toliau pateiktame pavyzdyje kandidatai "7" ir "5" centriniame stulpelyje yra tik geltonuose langeliuose, o tai reiškia, kad visi kiti kandidatai iš šių langelių gali būti neįtraukti.

Panašiai galite ieškoti paslėptų trigubų ir keturių.

x-sparnas

Jei reikšmė turi tik dvi galimas vietas eilėje (stulpelyje), ji turi būti priskirta vienam iš tų langelių. Jei yra dar viena eilutė (stulpelis), kur tas pats kandidatas taip pat gali būti tik dviejuose langeliuose ir šių langelių stulpeliai (eilutės) yra vienodi, tai jokiame kitame šių stulpelių (eilučių) langelyje negali būti šio skaičiaus. Apsvarstykite pavyzdį:

4 ir 5 eilutėse skaičius "2" gali būti tik dviejuose geltonuose langeliuose, o šie langeliai yra tuose pačiuose stulpeliuose. Todėl skaičius „2“ gali būti parašytas tik dviem būdais: 1) jei 4 eilutės 5 stulpelyje įrašytas „2“, tada „2“ turi būti pašalintas iš geltonųjų langelių, o tada 5 eilutėje padėtis „2“ vienareikšmiškai nustatoma pagal 7 stulpelį.

2) jei 4-os eilutės 7-ame stulpelyje parašyta "2", tai "2" turi būti pašalintas iš geltonųjų langelių, o tada 5-oje eilutėje poziciją "2" vienareikšmiškai nustato 5-asis stulpelis.

Todėl 5 ir 7 stulpeliai būtinai turės skaičių „2“ arba 4-oje, arba 5-oje eilutėje. Tada skaičius „2“ gali būti pašalintas iš kitų šių stulpelių langelių (žaliųjų langelių).

„Kardžuvė“ (Kardžuvė)

Šis metodas yra .

Iš galvosūkio taisyklių išplaukia, kad jei kandidatas yra trijose eilutėse ir tik trijuose stulpeliuose, tai kitose eilutėse šis kandidatas šiuose stulpeliuose gali būti pašalintas.

Algoritmas:

  • Ieškome eilučių, kuriose kandidatas pasitaiko ne daugiau kaip tris kartus, bet tuo pačiu priklauso tiksliai trims stulpeliams.
  • Iš kitų eilučių neįtraukiame kandidato iš šių trijų stulpelių.

Ta pati logika galioja ir trijų stulpelių atveju, kai kandidatas ribojamas iki trijų eilučių.

Apsvarstykite pavyzdį. Trijose eilutėse (3, 5 ir 7) kandidatas "5" pasitaiko ne daugiau kaip tris kartus (ląstelės paryškintos geltonai). Tačiau jie priklauso tik trims stulpeliams: 3, 4 ir 7. Pagal „Kardžuvės“ metodą kandidatas „5“ gali būti pašalintas iš kitų šių stulpelių langelių (žaliųjų langelių).

Toliau pateiktame pavyzdyje taip pat taikomas Kardžuvės metodas, tačiau trijų stulpelių atveju. Iš žaliųjų langelių neįtraukiame kandidato „1“.

„X-sparnas“ ir „Kardžuvė“ gali būti apibendrintas į keturias eilutes ir keturis stulpelius. Šis metodas bus vadinamas "Medusa".

Spalvos

Būna situacijų, kai kandidatas grupėje pasirodo tik du kartus (eilėje, stulpelyje ar bloke). Tuomet norimas skaičius tikrai bus viename iš jų. Spalvų metodo strategija yra peržiūrėti šį ryšį naudojant dvi spalvas, pvz., geltoną ir žalią. Šiuo atveju tirpalas gali būti tik vienos spalvos ląstelėse.

Atrenkame visas tarpusavyje sujungtas grandines ir priimame sprendimą:

  • Jei koks nors neužtemdytas kandidatas grupėje (eilutė, stulpelis ar blokas) turi du skirtingų spalvų kaimynus, jį galima atmesti.
  • Jei grupėje yra dvi identiškos spalvos (eilutė, stulpelis arba blokas), ši spalva yra klaidinga. Kandidatas iš visų šios spalvos langelių gali būti pašalintas.

Toliau pateiktame pavyzdyje taikykite "Spalvų" metodą langeliams su kandidatu "9". Dažyti pradedame nuo langelio viršutiniame kairiajame bloke (2 eilutė, 2 stulpelis), nudažykite geltonai. Savo bloke jis turi tik vieną kaimyną su "9", nudažykime jį žaliai. Ji irgi kolonoje turi tik vieną kaimynę, ją dažome žaliai.

Panašiai dirbame su likusiomis ląstelėmis, kuriose yra skaičius „9“. Mes gauname:

Kandidatas "9" gali būti arba tik visose geltonose ląstelėse, arba visiškai žalias. Dešiniajame viduriniame bloke susitiko dvi tos pačios spalvos langeliai, todėl žalia spalva yra neteisinga, nes šis blokas sukuria du „9“, o tai yra nepriimtina. Iš visų žaliųjų langelių neįtraukiame „9“.

Kitas „Spalvų“ metodo pavyzdys. Kandidatui pažymėkime suporuotas langelius „6“.

Ląstelėje su "6" viršutiniame centriniame bloke (paryškinta alyvine spalva) yra du įvairiaspalviai kandidatai:

„6“ būtinai bus geltonoje arba žalioje langelyje, todėl „6“ iš šios alyvinės spalvos langelio gali būti neįtrauktas.

Pirmas dalykas, kuris turėtų būti nustatytas problemų sprendimo metodikoje, yra iš tikrųjų supratimas, ką mes pasiekiame ir galime pasiekti spręsdami problemas. Supratimas paprastai suvokiamas kaip savaime suprantamas dalykas, ir mes pamirštame, kad supratimas turi tam tikrą supratimo pradžios tašką, tik jo atžvilgiu galime teigti, kad supratimas iš tikrųjų vyksta nuo konkretaus mūsų nustatyto momento. Sudoku čia, mūsų nuomone, yra patogus tuo, kad leidžia, remiantis jo pavyzdžiu, tam tikru mastu modeliuoti problemų supratimo ir sprendimo problemas. Tačiau pradėsime nuo kelių kitų ir ne mažiau svarbių pavyzdžių nei Sudoku.

Fizikas, studijuojantis specialųjį reliatyvumą, gali kalbėti apie Einšteino „krištolo skaidrumo“ teiginius. Šią frazę aptikau vienoje iš interneto svetainių. Bet kur prasideda šis „kristalinio aiškumo“ supratimas? Pradedama nuo postulatų matematinio žymėjimo įsisavinimo, iš kurio pagal žinomas ir suprantamas taisykles gali būti pastatytos visos daugiapakopės SRT matematinės konstrukcijos. Bet fizikas, kaip ir aš, nesupranta, kodėl SRT postulatai veikia taip, o ne kitaip.

Visų pirma, didžioji dauguma diskutuojančių apie šią doktriną nesupranta, kas tiksliai slypi šviesos greičio pastovumo postulate, verčiant nuo jos matematinio pritaikymo prie tikrovės. Ir šis postulatas reiškia šviesos greičio pastovumą visomis įmanomomis ir neįsivaizduojamomis prasmėmis. Šviesos greitis yra pastovus, palyginti su bet kuriais tuo pačiu metu ilsisinčiais ir judančiais objektais. Šviesos pluošto greitis, anot postulato, yra pastovus net artėjančio, skersinio ir tolstančio šviesos pluošto atžvilgiu. Ir tuo pačiu iš tikrųjų mes turime tik matavimus, kurie yra netiesiogiai susiję su šviesos greičiu, interpretuojami kaip jo pastovumas.

Niutono dėsniai fizikui ir net tiems, kurie tiesiog studijuoja fiziką, yra taip gerai žinomi, kad atrodo taip suprantami kaip savaime suprantamas dalykas ir kitaip negali būti. Bet, tarkime, visuotinės gravitacijos dėsnio taikymas prasideda nuo jo matematinio žymėjimo, pagal kurį galima apskaičiuoti net kosminių objektų trajektorijas ir orbitų charakteristikas. Bet kodėl šie įstatymai veikia taip, o ne kitaip – ​​tokio supratimo neturime.

Panašiai ir su Sudoku. Internete galima rasti ne kartą pasikartojančių „pagrindinių“ Sudoku problemų sprendimo būdų aprašymų. Jei prisimenate šias taisykles, galite suprasti, kaip ta ar kita „Sudoku“ problema išsprendžiama taikydami „pagrindines“ taisykles. Bet man kyla klausimas: ar suprantame, kodėl šie „baziniai“ metodai veikia taip, o ne kitaip.

Taigi pereiname prie kito pagrindinio problemų sprendimo metodikos punkto. Suprasti galima tik remiantis kokiu nors modeliu, kuris suteikia pagrindą šiam supratimui ir gebėjimui atlikti kokį nors natūralų ar minties eksperimentą. Be to galime turėti tik išmoktų atspirties taškų taikymo taisykles: SRT postulatus, Niutono dėsnius arba „pagrindinius“ Sudoku būdus.

Neturime ir iš esmės negalime turėti modelių, kurie tenkintų neribotos šviesos greičio pastovumo postulatą. Mes to nedarome, bet galima sugalvoti neįrodomus modelius, atitinkančius Niutono dėsnius. Ir tokių „niutoniškų“ modelių yra, bet jie kažkaip nesužavi produktyviomis galimybėmis atlikti plataus masto ar minties eksperimentą. Tačiau Sudoku suteikia mums galimybių, kurias galime panaudoti norėdami suprasti tikrąsias Sudoku problemas ir iliustruoti modeliavimą kaip bendrą problemų sprendimo būdą.

Vienas iš galimų Sudoku problemų modelių yra darbalapis. Jis sukuriamas tiesiog užpildžius visus tuščius užduotyje nurodytos lentelės langelius (ląsteles) skaičiais 123456789. Tada užduotis redukuojama iki visų papildomų skaitmenų nuoseklaus pašalinimo iš langelių, kol visi lentelės langeliai bus pašalinti. užpildyti pavieniais (išskirtiniais) skaitmenimis, kurie atitinka problemos sąlygą.

Kuriu tokį darbalapį „Excel“. Pirmiausia pasirenku visus tuščius lentelės langelius (ląsteles). Paspaudžiu F5 - "Pasirinkti" - "Tušti langeliai" - "Gerai". Bendresnis būdas pasirinkti norimus langelius: laikykite nuspaudę Ctrl ir spustelėkite pelę, kad pasirinktumėte šias ląsteles. Tada pasirinktoms ląstelėms nustačiau mėlyną spalvą, 10 dydį (originalas - 12) ir šriftą Arial Narrow. Visa tai daroma tam, kad vėlesni lentelės pakeitimai būtų aiškiai matomi. Toliau į tuščius langelius įvedu skaičius 123456789. Darau taip: užsirašau ir išsaugau šį skaičių atskirame langelyje. Tada paspaudžiu F2, pasirenku ir nukopijuoju šį skaičių su Ctrl + C operacija. Toliau einu į lentelės langelius ir, nuosekliai apeidamas visus tuščius langelius, Ctrl + V operacija įvedu į juos skaičių 123456789, ir darbalapis paruoštas.

Papildomus skaičius, apie kuriuos bus kalbama vėliau, ištrinu taip. Su operacija Ctrl + pelės paspaudimas - aš parenku langelius su papildomu skaičiumi. Tada paspaudžiu Ctrl + H ir viršutiniame atsidariusio lango laukelyje įvedu numerį, kurį norite ištrinti, o apatinis laukas turi būti visiškai tuščias. Tada belieka spustelėti parinktį „Pakeisti viską“ ir papildomas numeris pašalinamas.

Sprendžiant iš to, kad man įprastais „baziniais“ būdais dažniausiai pavyksta atlikti pažangesnį lentelių apdorojimą nei internete pateiktuose pavyzdžiuose, darbalapis yra pats paprasčiausias įrankis sprendžiant Sudoku uždavinius. Be to, daugelio situacijų, susijusių su sudėtingiausių vadinamųjų „pagrindinių“ taisyklių taikymu, mano darbalapyje tiesiog nebuvo.

Tuo pačiu metu darbalapis taip pat yra modelis, pagal kurį galima atlikti eksperimentus, vėliau nustatant visas „pagrindines“ taisykles ir įvairius jų taikymo niuansus, kylančius iš eksperimentų.

Taigi, prieš jus yra darbalapio fragmentas su devyniais blokais, sunumeruotais iš kairės į dešinę ir iš viršaus į apačią. Šiuo atveju turime ketvirtą bloką, užpildytą skaičiais 123456789. Tai mūsų modelis. Už bloko ribų raudonai paryškinome „suaktyvintus“ (galiausiai apibrėžtus) skaičius, šiuo atveju keturis, kuriuos ketiname pakeisti rengiamoje lentelėje. Mėlynieji penketukai yra skaičiai, kurie dar nėra apibrėžti dėl savo būsimo vaidmens, apie kurį kalbėsime vėliau. Mūsų priskirti aktyvuoti numeriai tarsi išbraukiami, išstumiami, ištrinami – apskritai jie bloke išstumia tuos pačius numerius, todėl ten pavaizduoti blyškia spalva, simbolizuojančia faktą, kad šie blyškūs skaičiai buvo ištrintas. Šią spalvą norėjau padaryti dar blyškesnę, bet tada jos pasižiūrėjus internete galėjo tapti visiškai nematomos.

Dėl to ketvirtame bloke, langelyje E5, buvo vienas, taip pat aktyvuotas, bet paslėptas keturi. „Suaktyvinta“, nes ji savo ruožtu taip pat gali pašalinti papildomus skaitmenis, jei jie yra pakeliui, ir „paslėpta“, nes ji yra tarp kitų skaitmenų. Jei ląstelę E5 užpuola likusieji, išskyrus 4, aktyvuoti numeriai 12356789, tai E5 – 4 atsiras „nuogas“ vienišas.

Dabar pašalinkime vieną aktyvuotą ketvertą, pavyzdžiui, iš F7. Tada užpildytame bloke keturi gali būti jau ir tik langelyje E5 arba F5, o aktyvuoti 5 eilutėje. Jei šioje situacijoje dalyvauja aktyvuoti penketukai, be F7=4 ir F8=5, tai langeliuose E5 ir F5 ten yra bus nuoga arba paslėpta aktyvuota pora 45.

Po to, kai pakankamai išdirbote ir supratote skirtingus variantus su nuogais ir paslėptais viengungiais, dviese, trise ir pan. ne tik blokais, bet ir eilutėmis bei stulpeliais galime pereiti prie kito eksperimento. Sukurkime pliką porą 45, kaip darėme anksčiau, o tada sujungsime aktyvuotus F7=4 ir F8=5. Dėl to susiklostys situacija E5=45. Panašios situacijos labai dažnai susidaro apdorojant darbalapį. Ši situacija reiškia, kad vienas iš šių skaitmenų, šiuo atveju 4 arba 5, būtinai turi būti bloke, eilutėje ir stulpelyje, kuriame yra langelis E5, nes visais šiais atvejais turi būti du skaitmenys, o ne vienas iš jų.

Ir, svarbiausia, dabar jau žinome, kaip dažnai pasitaiko tokios situacijos kaip E5=45. Panašiai apibrėšime situacijas, kai viename langelyje atsiranda trigubas skaitmenų ir pan. Ir kai šių situacijų supratimo ir suvokimo laipsnį perkelsime į savaime suprantamą ir paprastumą, tada kitas žingsnis yra, taip sakant, mokslinis situacijų supratimas: tada galėsime atlikti statistinę Sudoku lenteles, identifikuokite modelius ir naudokite sukauptą medžiagą sudėtingiausioms problemoms spręsti.

Taigi, eksperimentuodami su modeliu, gauname vizualų ir net „mokslinį“ paslėptų ar atvirų singlų, porų, trigubų ir kt. Jei apsiribosite operacijomis su aprašytu paprastu modeliu, kai kurios jūsų idėjos pasirodys netikslios ar net klaidingos. Tačiau vos perėjus prie konkrečių problemų sprendimo, pirminių idėjų netikslumai greitai išaiškės, tačiau modelius, kuriais remiantis buvo atlikti eksperimentai, teks permąstyti ir patobulinti. Tai neišvengiamas hipotezių ir patikslinimų kelias sprendžiant bet kokias problemas.

Turiu pasakyti, kad paslėpti ir atviri pavieniai, taip pat atviros poros, trigubai ir net ketvertukai yra dažnos situacijos, kylančios sprendžiant Sudoku problemas su darbalapiu. Paslėptos poros buvo retos. O štai paslėpti trigubai, ketvertukai ir t.t. Aš kažkaip nesusidūriau apdorojant darbalapius, kaip ir internete ne kartą aprašytus „x-wing“ ir „kardžuvės“ kontūrų apėjimo būdus, kuriuose yra „kandidatų“ ištrinti su bet kuriuo iš du alternatyvūs kontūrų apėjimo būdai. Šių metodų prasmė: jei sunaikiname "kandidatą" x1, tai lieka išskirtinis kandidatas x2 ir tuo pačiu kandidatas x3 išbraukiamas, o jei sunaikiname x2, lieka išskirtinis x1, bet šiuo atveju kandidatas x3 taip pat ištrintas, todėl bet kokiu atveju x3 turėtų būti ištrintas , kol kas tai nepaveiks kandidatų x1 ir x2. Apskritai, tai yra ypatingas situacijos atvejis: jei du alternatyvūs būdai duoda tą patį rezultatą, tada šis rezultatas gali būti naudojamas Sudoku problemai išspręsti. Šioje, bendresnėje, situacijoje sutikau situacijų, bet ne „x-wing“ ir „swordfish“ variantuose, o ne sprendžiant Sudoku uždavinius, kuriems pakanka žinių tik apie „bazinius“ metodus.

Darbalapio naudojimo ypatybės gali būti parodytos toliau pateiktame nereikšmingame pavyzdyje. Viename iš sudoku sprendimų forumų http://zforum.net/index.php?topic=3955.25;wap2 aptikau problemą, pateiktą kaip viena iš sudėtingiausių sudoku problemų, kurios negalima išspręsti įprastais būdais, nenaudojant išvardijimo prielaidos apie skaičius, pakeistus langeliuose. Parodykime, kad su darbo lentele galima išspręsti šią problemą be tokio išvardinimo:

Dešinėje – pirminė užduotis, kairėje – darbo lentelė po „ištrynimo“, t.y. įprastinė papildomų skaitmenų pašalinimo operacija.

Pirmiausia susitarkime dėl žymėjimo. ABC4=689 reiškia, kad langeliuose A4, B4 ir C4 yra skaičiai 6, 8 ir 9 – po vieną ar daugiau skaitmenų kiekviename langelyje. Tas pats ir su stygomis. Taigi B56=24 reiškia, kad langeliuose B5 ir B6 yra skaičiai 2 ir 4. Ženklas ">" yra sąlyginio veiksmo ženklas. Taigi D4=5>I4-37 reiškia, kad dėl pranešimo D4=5 langelyje I4 turėtų būti įrašytas skaičius 37. Žinia gali būti atvira – „nuoga“ – ir paslėpta, kuri turėtų būti atskleista. Pranešimo poveikis gali būti nuoseklus (netiesiogiai perduodamas) išilgai grandinės ir lygiagretus (veikti tiesiogiai kitus langelius). Pavyzdžiui:

D3=2; D8=1>A9-1>A2-2>A3-4,G9-3; (D8=1)+(G9=3)>G8-7>G7-1>G5-5

Šis įrašas reiškia, kad D3=2, tačiau šį faktą reikia atskleisti. D8=1 perduoda savo veiksmą grandinėje į A3, o 4 turi būti parašytas į A3; tuo pačiu metu D3=2 veikia tiesiogiai G9, todėl G9-3. (D8=1)+(G9=3)>G8-7 – bendra veiksnių (D8=1) ir (G9=3) įtaka lemia rezultatą G8-7. ir kt.

Įrašuose taip pat gali būti H56/68 tipo derinys. Tai reiškia, kad langeliuose H5 ir H6 draudžiami skaičiai 6 ir 8, t.y. juos reikia pašalinti iš šių ląstelių.

Taigi, pradedame dirbti su lentele ir pradžiai pritaikome gerai išreikštą, pastebimą sąlygą ABC4=689. Tai reiškia, kad visose kitose (išskyrus A4, B4 ir C4) 4 bloko (viduryje, kairėje) ir 4 eilutės langeliuose skaičiai 6, 8 ir 9 turėtų būti ištrinti:

B56=24 taikyti lygiai taip pat. Kartu turime D4=5 ir (po D4=5>I4-37) HI4=37, taip pat (po B56=24>C6-1) C6=1. Taikykime tai darbalapiui:

I89=68paslėptas>I56/68>H56-68: t.y. langeliuose I8 ir I9 yra paslėpta 5 ir 6 skaitmenų pora, kuri draudžia šiems skaitmenims būti I56, todėl gaunamas rezultatas H56-68. Šį fragmentą galime vertinti kitaip, kaip ir eksperimentuodami su darbalapio modeliu: (G23=68)+(AD7=68)>I89-68; (I89=68)+(ABC4=689)>H56-68. Tai yra, dvipusis „ataka“ (G23=68) ir (AD7=68) veda prie to, kad I8 ir I9 gali būti tik skaičiai 6 ir 8. Toliau (I89=68) yra prijungtas prie „ ataka“ prieš H56 kartu su ankstesnėmis sąlygomis, o tai veda į H56-68. Be šios "atakos" yra prijungtas (ABC4=689), kuris šiame pavyzdyje atrodo perteklinis, tačiau jei dirbtume be darbinio stalo, tai smūgio faktorius (ABC4=689) būtų paslėptas ir būtų gana tikslinga į tai atkreipti ypatingą dėmesį.

Kitas veiksmas: I5=2>G1-2,G6-9,B6-4,B5-2.

Tikiuosi, jau aišku be komentarų: pakeiskite skaičius, esančius po brūkšnio, nesuklysite:

H7=9>I7-4; D6=8>D1-4,H6-6>H5-8:

Kita veiksmų serija:

D3=2; D8=1>A9-1>A2-2>A3-4,G9-3;

(D8=1)+(G9=3)>G8-7>G7-1>G5-5;

D5=9>E5-6>F5-4:

I=4>C9-4>C7-2>E9-2>EF7-35>B7-7, F89-89,

tai yra, dėl „perbraukimo“ – ištrynus papildomus skaitmenis – langeliuose F8 ir F9 atsiranda atvira, „nuoga“ pora 89, kurią kartu su kitais įraše nurodytais rezultatais taikome lentelei:

H2=4>H3-1>F2-1>F1-6>A1-3>B8-3,C8-5,H1-7>I2-5>I3-3>I4-7>H4-3

Jų rezultatas:

Po to seka gana įprasti, akivaizdūs veiksmai:

H1=7>C1-8>E1-5>F3-7>E2-9>E3-8,C3-9>B3-5>B2-6>C2-7>C4-6>A4-9>B4- aštuoni;

B2=6>B9-9>A8-6>I8-8>F8-9>F9-8>I9-6;

E7=3>F7-5,E6-7>F6-3

Jų rezultatas: galutinis problemos sprendimas:

Vienaip ar kitaip, manysime, kad „pagrindinius“ metodus „Sudoku“ ar kitose intelektualinio pritaikymo srityse išsiaiškinome pagal tam tinkamą modelį ir net išmokome juos taikyti. Tačiau tai tik dalis mūsų pažangos problemų sprendimo metodikos srityje. Be to, kartoju, į tai ne visada atsižvelgiama, bet tai yra būtinas etapas, siekiant palengvinti anksčiau išmoktus metodus. Spręsti pavyzdžius, suvokti šio sprendimo rezultatus ir metodus, permąstyti šią medžiagą remiantis priimtu modeliu, dar kartą apgalvoti visas galimybes, priartinti jų supratimo laipsnį į automatizavimą, kai sprendimas naudojant „pagrindines“ nuostatas tampa įprastas. ir išnyksta kaip problema. Ką tai duoda: kiekvienas turėtų tai pajusti savo patirtimi. O esmė ta, kad probleminei situacijai tapus rutina, intelekto paieškos mechanizmas nukreipiamas į vis sudėtingesnių nuostatų kūrimą sprendžiamų problemų srityje.

O kas yra „sudėtingesnės nuostatos“? Tai tik naujos „bazinės“ nuostatos sprendžiant problemą, kurių supratimas, savo ruožtu, taip pat gali būti supaprastintas, jei randamas tinkamas modelis.

Straipsnyje Vasilenko S.L. „Numeric Harmony Sudoku“ randu 18 simetriškų klavišų problemos pavyzdį:

Kalbant apie šią užduotį, teigiama, kad ji gali būti išspręsta naudojant „pagrindinius“ metodus tik iki tam tikros būsenos, kurią pasiekus belieka taikyti paprastą išvardijimą su bandomuoju pakaitalu į kokio nors tariamo išskirtinio (viengubo, viengubo) ląsteles. ) skaitmenys. Ši būsena (šiek tiek toliau nei Vasilenko pavyzdyje) atrodo taip:

Yra toks modelis. Tai tam tikras identifikuotų ir neatpažintų išskirtinių (vieno) skaitmenų sukimosi mechanizmas. Paprasčiausiu atveju koks nors trigubas išskirtinių skaitmenų sukasi dešine arba kaire kryptimi, eidamas pro šią grupę iš eilutės į eilutę arba iš stulpelio į stulpelį. Apskritai, tuo pačiu metu viena kryptimi sukasi trys skaičių trigubų grupės. Sudėtingesniais atvejais trys išskirtinių skaitmenų poros sukasi viena kryptimi, o trigubas skaitmenų sukasi priešinga kryptimi. Taigi, pavyzdžiui, išskirtiniai skaitmenys pirmose trijose nagrinėjamos problemos eilutėse yra pasukami. Ir, svarbiausia, tokį sukimąsi galima pamatyti įvertinus skaičių vietą apdorotame darbalapyje. Šios informacijos kol kas pakanka, o kitus sukimosi modelio niuansus suprasime problemos sprendimo procese.

Taigi pirmose (viršutinėse) trijose eilutėse (1, 2 ir 3) galime pastebėti porų (3+8) ir (7+9), taip pat (2+x1) su nežinomu x1 ir singlų trigubas (x2+4+ 1) su nežinomu x2. Tai darydami galime pastebėti, kad kiekvienas iš x1 ir x2 gali būti 5 arba 6.

4, 5 ir 6 eilutėse apžvelgiamos poros (2+4) ir (1+3). Taip pat turėtų būti 3-ioji nežinoma pora ir trigubas singlų, iš kurių žinomas tik vienas skaitmuo 5.

Panašiai žiūrime į 789 eilutes, tada į stulpelių ABC, DEF ir GHI trejetus. Surinktą informaciją surašysime simboline ir, tikiuosi, visai suprantama forma:

Kol kas šios informacijos mums reikia tik bendrai situacijai suprasti. Atidžiai pagalvokite ir tada pereisime prie šios specialiai tam paruoštos lentelės:

Alternatyvas išryškinau spalvomis. Mėlyna reiškia „leidžiama“, o geltona – „draudžiama“. Jei, tarkime, leidžiama A2=79 leidžiama A2=7, tai C2=7 draudžiama. Arba atvirkščiai – leidžiama A2=9, draudžiama C2=9. Ir tada leidimai ir draudimai perduodami logine grandine. Šis dažymas atliekamas tam, kad būtų lengviau peržiūrėti įvairias alternatyvas. Apskritai, tai yra tam tikra analogija su „x-wing“ ir „swordfish“ metodais, minėtais apdorojant lenteles.

Žvelgiant į B6=7 ir atitinkamai B7=9 parinktis, iškart galime rasti du su šia galimybe nesuderinamus taškus. Jei B7=9, tai 789 eilutėse atsiranda sinchroniškai besisukantis trigubas, o tai nepriimtina, nes sinchroniškai (viena kryptimi) gali suktis arba tik trys poros (ir joms asinchroniškai trys pavieniai), arba trys trigubai (be pavienių). Be to, jei B7=9, tai po kelių žingsnių apdorojant darbalapį 7 eilutėje rasime nesuderinamumą: B7=D7=9. Taigi mes pakeičiame vienintelę priimtiną iš dviejų alternatyvų B6=9, o tada problema išsprendžiama paprastomis įprastomis apdorojimo priemonėmis be jokio aklo išvardijimo:

Toliau turiu paruoštą pavyzdį, naudojant sukimosi modelį, kad išspręsčiau problemą iš Pasaulio sudoku čempionato, bet praleidžiu šį pavyzdį, kad per daug neištempčiau šio straipsnio. Be to, kaip paaiškėjo, ši problema turi tris sprendimus, kurie menkai tinka pirminiam skaitmenų sukimosi modelio kūrimui. Taip pat daug pūpsojau apie Gary'io McGuire'o 17 raktų problemą, ištrauktą iš interneto, kad išspręsčiau jo galvosūkį, kol dar labiau susierzinęs sužinojau, kad ši „dėlionė“ turi daugiau nei 9 tūkstančius sprendimų.

Taigi, norom nenorom tenka pereiti prie Arto Inkalos sukurtos „sunkiausios pasaulyje“ Sudoku problemos, kuri, kaip žinia, turi unikalų sprendimą.

Įvedus du gana akivaizdžius išskirtinius skaičius ir apdorojus darbalapį, užduotis atrodo taip:

Klavišai, priskirti pradinei problemai, yra paryškinti juodu ir didesniu šriftu. Norėdami eiti į priekį sprendžiant šią problemą, vėl turime pasikliauti tinkamu modeliu, tinkamu šiam tikslui. Šis modelis yra savotiškas skaičių sukimosi mechanizmas. Tai jau ne kartą buvo aptarta šiame ir ankstesniuose straipsniuose, tačiau norint suprasti tolesnę straipsnio medžiagą, šis mechanizmas turėtų būti apgalvotas ir išsamiai išdirbtas. Maždaug taip, lyg su tokiu mechanizmu būtum dirbęs dešimt metų. Bet jūs vis tiek galėsite suprasti šią medžiagą, jei ne iš pirmo skaitymo, tai iš antro ar trečio ir pan. Be to, jei atkakliai atkakliai, šią „sunkiai suprantamą“ medžiagą paversi įprasta ir paprastumo būseną. Šiuo atžvilgiu nėra nieko naujo: kas iš pradžių labai sunku, pamažu tampa nebe taip sunku, o toliau nenutrūkstamai tobulėjant viskas tampa akivaizdžiausia ir nereikalauja protinių pastangų į savo vietą, po kurios gali išlaisvinti savo protą. tolesnės pažangos sprendžiamos problemos ar kitų problemų atveju.

Kruopšti Arto Incal problemos struktūros analizė rodo, kad visa problema paremta trijų sinchroniškai besisukančių porų ir trigubo asinchroniškai besisukančių pavienių porų principu: (x1+x2)+(x3+x4)+(x5+) x6)+(x7+x8+ x9). Sukimosi tvarka gali būti, pavyzdžiui, tokia: pirmose trijose eilutėse 123 pirmoji pora (x1+x2) eina iš pirmo bloko pirmos eilutės į antrą antrojo bloko eilutę, tada į trečią. trečiojo bloko linija. Antroji pora peršoka iš pirmo bloko antrosios eilės į antrojo bloko trečią eilę, tada šioje sukimosi metu peršoka į trečio bloko pirmąją eilę. Trečioji pora iš trečios pirmojo bloko eilės peršoka į antrojo bloko pirmąją eilutę, o tada ta pačia sukimosi kryptimi peršoka į trečiojo bloko antrąją eilę. Pavienių asmenų trijulė juda panašia sukimosi schema, bet priešinga kryptimi nei poros. Situacija su stulpeliais atrodo panašiai: jei lentelė mintyse (ar iš tikrųjų) pasukta 90 laipsnių, tada eilutės taps stulpeliais, kurių pavienių ir porų judėjimo pobūdis bus toks pat, kaip ir anksčiau eilėms.

Mintyse apversdami šiuos sukimus, susijusius su Arto Incal problema, pamažu suprantame akivaizdžius apribojimus renkantis šio sukimo variantus pasirinktam trigubui eilučių ar stulpelių:

Neturėtų būti sinchroniškai (viena kryptimi) besisukančių trynukų ir porų – tokie trynukai, priešingai nei pavienių, toliau bus vadinami trynukais;

Neturėtų būti porų asinchroninių tarpusavyje arba pavienių asinchroninių vienas su kitu;

Neturėtų būti ir porų, ir pavienių, besisukančių viena (pavyzdžiui, į dešinę) kryptimi – tai ankstesnių apribojimų pakartojimas, bet gali atrodyti suprantamiau.

Be to, yra ir kitų apribojimų:

9 eilutėse neturi būti nė vienos poros, kuri atitiktų porą nė viename iš stulpelių, o stulpeliams ir eilutėms – tokia pati. Tai turėtų būti akivaizdu: nes pats faktas, kad du skaičiai yra toje pačioje eilutėje, rodo, kad jie yra skirtinguose stulpeliuose.

Taip pat galima sakyti, kad labai retai pasitaiko porų atitikmenų skirtinguose eilučių trigubuose arba panašios atitikties trijuose stulpelių, taip pat retai pasitaiko pavienių triviečių atitikmenų eilutėse ir (arba) stulpeliuose, bet tai, taip sakant, , tikimybiniai modeliai.

Tyrimo blokai 4,5,6.

4-6 blokuose galimos poros (3+7) ir (3+9). Jei priimame (3+9), tai gauname neteisingą sinchroninį tripleto sukimąsi (3+7+9), taigi turime porą (7+3). Pakeitus šią porą ir vėliau apdorojus lentelę įprastomis priemonėmis, gauname:

Tuo pačiu galime teigti, kad 5 B6=5 gali būti tik vienišas, asinchroninis (7+3), o 6 I5=6 yra parageneratorius, nes yra toje pačioje eilutėje H5=5 šeštoje. blokas, todėl jis negali būti vienas ir gali judėti tik sinchroniškai su (7+3.

ir suskirstė kandidatus į vienišius pagal jų pasirodymų skaičių šioje lentelėje:

Jei sutiksime, kad dažniausiai 2, 4 ir 5 yra pavieniai, tai pagal sukimosi taisykles su jais gali būti derinamos tik poros: (7 + 3), (9 + 6) ir (1 + 8) - a. pora (1 + 9) atmesta, nes ji paneigia porą (9 + 6). Be to, pakeitę šias poras ir pavienius ir toliau apdorojus lentelę įprastais metodais, gauname:

Pasirodė tokia nepaklusni lentelė – jos nesinori apdoroti iki galo.

Teks pasistengti ir pastebėti, kad ABC stulpeliuose yra pora (7 + 4) ir 6 juda sinchroniškai su 7 šiuose stulpeliuose, todėl 6 yra poravimas, todėl stulpelyje galimi tik deriniai (6 + 3). 4 bloko „C“ +8 arba (6+8)+3. Pirmoji iš šių kombinacijų neveikia, nes tuomet 7-ame bloke stulpelyje „B“ atsiras netinkamas sinchroninis trigubas – tripletas (6 + 3 + 8). Na, o tada, pakeitę variantą (6 + 8) + 3 ir įprastu būdu apdoroję lentelę, pasiekiame sėkmingą užduoties atlikimą.

Antrasis variantas: grįžkime prie lentelės, gautos identifikavus kombinaciją (7 + 3) + 5 456 eilutėse ir pereikime prie stulpelių ABC tyrimo.

Čia galime pastebėti, kad pora (2+9) negali vykti ABC. Kiti deriniai (2+4), (2+7), (9+4) ir (9+7) duoda sinchroninį trigubą – tripletą A4+A5+A6 ir B1+B2+B3, o tai nepriimtina. Lieka viena priimtina pora (7+4). Be to, 6 ir 5 juda sinchroniškai 7, vadinasi, jie yra garą formuojantys, t.y. sudaryti kelias poras, bet ne 5 + 6.

Sudarykite galimų porų sąrašą ir jų derinius su pavieniais:

Derinys (6+3)+8 neveikia, nes kitu atveju viename stulpelyje (6 + 3 + 8) susidaro negaliojantis trigubas-tripletas, kuris jau buvo aptartas ir kurį galime dar kartą patikrinti patikrinę visus variantus. Iš kandidatų į vienvietes daugiausiai balų surenka 3 skaičius, o iš visų minėtų kombinacijų greičiausiai: (6 + 8) + 3, t.y. (C4=6 + C5=8) + C6=3, todėl gaunama:

Be to, labiausiai tikėtinas kandidatas į vienišius yra 2 arba 9 (po 6 balus), tačiau bet kuriuo iš šių atvejų 1 kandidatas (4 balai) lieka galioti. Pradėkime nuo (5+29)+1, kur 1 yra asinchroninis su 5, t.y. Įdėkite 1 iš B5=1 kaip asinchroninį vienetą visuose ABC stulpeliuose:

7 bloko A stulpelyje galimi tik variantai (5+9)+3 ir (5+2)+3. Bet geriau atkreipti dėmesį į tai, kad 1-3 eilutėse dabar atsirado poros (4 + 5) ir (8 + 9). Jų pakeitimas lemia greitą rezultatą, t.y. iki užduoties atlikimo po to, kai lentelė buvo apdorota įprastomis priemonėmis.

Na, o dabar, pasinaudoję ankstesniais variantais, galime pabandyti išspręsti Arto Incal problemą nenaudodami statistinių įverčių.

Vėl grįžtame į pradinę padėtį:

4-6 blokuose galimos poros (3+7) ir (3+9). Jei priimame (3 + 9), gauname neteisingą sinchroninį tripleto sukimąsi (3 + 7 + 9), todėl lentelėje turime tik parinktį (7 + 3):

5 čia, kaip matome, yra vienišas, 6 yra paraformeris. Galiojančios parinktys ABC5: (2+1)+8, (2+1)+9, (8+1)+9, (8+1)+2, (9+1)+8, (9+1) +2. Bet (2+1) yra asinchroninis su (7+3), todėl yra (8+1)+9, (8+1)+2, (9+1)+8, (9+1)+2. Bet kuriuo atveju 1 yra sinchroninis (7 + 3) ir todėl parageneruojantis. Pakeiskime 1 šioje lentelėje lentelėje:

Skaičius 6 čia yra parageneratorius bl. 4-6, tačiau ryškios poros (6+4) galiojančių porų sąraše nėra. Taigi keturkampis A4 = 4 yra asinchroninis 6:

Kadangi D4+E4=(8+1) ir pagal sukimosi analizę sudaro šią porą, gauname:

Jei langeliai C456=(6+3)+8, tai B789=683, t.y. gauname sinchroninį trigubą-tripletą, todėl liekame pasirinkti (6+8)+3 ir jo pakeitimo rezultatą:

B2=3 čia yra vienas, C1=5 (asinchroninis 3) yra poravimas, A2=8 taip pat yra poravimas. B3=7 gali būti ir sinchroninis, ir asinchroninis. Dabar galime įrodyti save sudėtingesniais triukais. Išlavinta akimi (ar bent jau tikrinant kompiuteriu) matome, kad esant bet kokiai būsenai B3=7 – sinchroninė ar asinchroninė – gauname tą patį rezultatą A1=1. Todėl mes galime pakeisti šią reikšmę į A1 ir tada atlikti savo, tiksliau Arto Incala, užduotį įprastesnėmis paprastomis priemonėmis:

Vienaip ar kitaip, galėjome apsvarstyti ir net iliustruoti tris bendrus problemų sprendimo būdus: nustatyti problemos supratimo tašką (ne hipotetinį ar aklai deklaruotą, o realų momentą, nuo kurio galima kalbėti apie problemos supratimą). ), pasirinkite modelį, leidžiantį suvokti supratimą per natūralų ar psichinį eksperimentą ir, trečia, šiuo atveju pasiektų rezultatų supratimo ir suvokimo laipsnį perkelti į savaime suprantamą ir paprastumą. Taip pat yra ketvirtasis metodas, kurį aš asmeniškai naudoju.

Kiekvienas žmogus turi būsenų, kai jam kylančios intelektualinės užduotys ir problemos išsprendžiamos lengviau nei paprastai. Šios būsenos yra gana atkuriamos. Norėdami tai padaryti, turite įvaldyti minčių išjungimo techniką. Iš pradžių bent sekundės dalelę, vėliau vis labiau tempiant šį atsijungimo momentą. Daugiau nieko negaliu pasakyti, tiksliau, rekomenduoti, nes šio metodo taikymo trukmė yra grynai asmeninis reikalas. Tačiau šio metodo griebiausi kartais ilgai, kai prieš akis iškyla problema, prie kurios nematau variantų, kaip prie jos privažiuoti ir ją išspręsti. Dėl to iš atminties saugyklų anksčiau ar vėliau išnyra tinkamas modelio prototipas, kuris išaiškina esmę, ką reikia išspręsti.

Inkalo problemą išsprendžiau keliais būdais, įskaitant aprašytus ankstesniuose straipsniuose. Ir visada vienaip ar kitaip taikiau šį ketvirtąjį metodą su išsijungimu ir vėlesniu protinių pastangų sutelkimu. Greičiausią problemos sprendimą gavau paprastu išvardinimu – vadinamuoju „kišimo metodu“, tačiau naudodamas tik „ilgas“ parinktis: tokias, kurios gali greitai lemti teigiamą arba neigiamą rezultatą. Kiti variantai iš manęs atėmė daugiau laiko, nes didžioji laiko dalis buvo skirta bent apytikriai šių parinkčių taikymo technologijos kūrimui.

Geras pasirinkimas taip pat atitinka ketvirtojo metodo dvasią: prisijunkite prie Sudoku problemų sprendimo, sprendžiant problemą pakeičiant tik vieną skaitmenį kiekvienoje ląstelėje. Tai yra, didžioji dalis užduoties ir jos duomenų yra „slenkama“ mintyse. Tai yra pagrindinė intelektualinio problemų sprendimo proceso dalis, todėl šį įgūdį reikia lavinti, kad padidėtų jūsų gebėjimas spręsti problemas. Pavyzdžiui, nesu profesionalus Sudoku sprendėjas. Turiu kitų užduočių. Tačiau vis dėlto noriu išsikelti sau tokį tikslą: įgyti galimybę išspręsti padidinto sudėtingumo Sudoku problemas be darbalapio ir nekeičiant daugiau nei vieno skaičiaus į vieną tuščią langelį. Šiuo atveju leidžiamas bet koks Sudoku sprendimo būdas, įskaitant paprastą parinkčių sąrašą.

Neatsitiktinai prisimenu čia pateiktą variantų sąrašą. Bet koks Sudoku problemų sprendimo būdas apima tam tikrų metodų rinkinį savo arsenale, įskaitant vienokį ar kitokį surašymo tipą. Be to, bet kuris iš Sudoku naudojamų metodų arba sprendžiant kitas problemas turi savo veiksmingo taikymo sritį. Taigi, sprendžiant gana paprastas Sudoku problemas, efektyviausi yra paprasti „pagrindiniai“ metodai, aprašyti daugybėje straipsnių šia tema internete, o sudėtingesnis „sukimosi metodas“ čia dažnai yra nenaudingas, nes jis tik apsunkina žaidimo eigą. paprastas sprendimas ir tuo pačiu kas -nepateikia naujos informacijos, kuri atsiranda sprendžiant problemą. Tačiau sunkiausiais atvejais, kaip Arto Incal problema, „sukimosi metodas“ gali atlikti pagrindinį vaidmenį.

Sudoku mano straipsniuose yra tik iliustruojantis problemų sprendimo būdų pavyzdys. Tarp mano išspręstų problemų taip pat yra daug sudėtingesnių nei Sudoku. Pavyzdžiui, mūsų svetainėje esantys kompiuteriniai katilų ir turbinų modeliai. Aš irgi neprieštaraučiau apie juos kalbėti. Tačiau kol kas „Sudoku“ pasirinkau tam, kad savo jauniesiems bendrapiliečiams gana vaizdžiai parodyčiau galimus kelius ir etapus siekiant galutinio sprendžiamų problemų tikslo.

Tai viskas siandienai.

VKontakte Facebook Odnoklassniki

Mėgstantiems sudoku galvosūkius spręsti savarankiškai ir lėtai, formulė, leidžianti greitai suskaičiuoti atsakymus, gali atrodyti kaip silpnumo ar apgaulės pripažinimas.

Tačiau tiems, kuriems „Sudoku“ per sunku išspręsti, tai gali būti tiesiog puikus sprendimas.

Du mokslininkai sukūrė matematinį algoritmą, leidžiantį labai greitai išspręsti sudoku problemą, nespėliojant ir neatsitraukiant.

Sudėtingų tinklų tyrinėtojai Zoltanas Torozhkai ir Maria Erksi-Ravaz iš Notre Dame universiteto taip pat galėjo paaiškinti, kodėl kai kurie Sudoku galvosūkiai yra sunkesni už kitus. Vienintelis trūkumas yra tas, kad norint suprasti, ką jie siūlo, reikia turėti matematikos daktaro laipsnį.


Ar galite išspręsti šį galvosūkį? Teigiama, kad jį sukūrė matematikas Arto Incala, tai yra sunkiausias sudoku pasaulyje. Nuotrauka iš nature.com

Torozhkay ir Erksi-Rawaz pradėjo analizuoti Sudoku kaip optimizavimo teorijos ir skaičiavimo sudėtingumo tyrimus. Jie sako, kad dauguma sudoku entuziastų naudoja brutalios jėgos metodą, pagrįstą atspėjimo technika, kad išspręstų šias problemas. Taigi, sudoku mėgėjai apsiginkluoja pieštuku ir bando visas įmanomas skaičių kombinacijas, kol bus rastas teisingas atsakymas. Šis metodas neišvengiamai lems sėkmę, tačiau jis yra sunkus ir atima daug laiko.

Vietoj to, Torozhkai ir Erksi-Ravaz pasiūlė universalų analoginį algoritmą, kuris yra absoliučiai deterministinis (nenaudoja spėlionių ar surašymų) ir visada randa teisingą problemos sprendimą ir gana greitai.


Norėdami užbaigti šį sudoku, mokslininkai naudojo „deterministinį analoginį sprendiklį“. Nuotrauka iš nature.com

Tyrėjai taip pat nustatė, kad laikas, reikalingas galvosūkiui išspręsti naudojant analoginį algoritmą, koreliuoja su užduoties sudėtingumo laipsniu, kurį vertina asmuo. Tai paskatino juos sukurti galvosūkio ar problemos sudėtingumo reitingavimo skalę.

Jie sukūrė skalę nuo 1 iki 4, kur 1 – „lengva“, 2 – „vidutiniškai“, 3 – „sunku“, 4 – „labai sunku“. Dėlionė, kurios įvertinimas yra 2, užtrunka vidutiniškai 10 kartų ilgiau nei galvosūkis, kurio įvertinimas yra 1. Pagal šią sistemą sunkiausio iki šiol žinomo galvosūkio įvertinimas yra 3,6; sudėtingesni Sudoku galvosūkiai dar nėra žinomi.


Teorija prasideda tikimybių žemėlapiu kiekvienam atskiram kvadratui. Nuotrauka iš nature.com

„Sudoku manęs nedomino, kol nepradėjome dirbti su bendresne Būlio problemų patenkinamumo klase“, – sako Torozhkay. – Kadangi sudoku yra šios klasės dalis, 9-ojo laipsnio lotynų kvadratas mums pasirodė tinkamas laukas išbandyti, todėl su jais susipažinau. Mane ir daugelį tyrėjų, tyrinėjančių tokias problemas, žavi klausimas, kiek mes, žmonės, galime nueiti spręsdami Sudoku deterministiškai, be nulaužimo, o tai yra atsitiktinis pasirinkimas, o jei spėjimas nėra teisingas, reikia grįžti atgal. žingsnis arba keli žingsniai ir pradėti iš naujo. Mūsų analoginis sprendimo modelis yra deterministinis: nėra atsitiktinio pasirinkimo ar pasikartojimo dinamikoje.


Chaoso teorija: galvosūkių sudėtingumo laipsnis čia parodytas kaip chaotiška dinamika. Nuotrauka iš nature.com

Torozhkai ir Erksi-Ravaz mano, kad jų analoginis algoritmas gali būti pritaikytas įvairioms pramonės, kompiuterių mokslo ir skaičiavimo biologijos problemoms spręsti.

Tyrimo patirtis taip pat padarė Torozhkay dideliu Sudoku gerbėju.

„Mano žmona ir aš turime keletą „Sudoku“ programų savo „iPhone“ telefonuose ir iki šiol tikriausiai žaidėme tūkstančius kartų, varžydamiesi per trumpesnį laiką kiekviename lygyje“, – sako jis. – Ji dažnai intuityviai mato raštų derinius, kurių aš nepastebiu. Turiu juos išimti. Man tampa nebeįmanoma išspręsti daugelio galvosūkių, kuriuos mūsų skalė priskiria sunkioms arba labai sudėtingoms, neparašant tikimybių pieštuku.

Torozhkay ir Erksi-Ravaz metodika pirmą kartą buvo paskelbta „Nature Physics“, o vėliau „Nature Scientific Reports“.

Naudokite skaičius nuo 1 iki 9

Sudoku žaidžiamas tinklelyje 9:9, iš viso 81 tinklelis. Žaidimo lauko viduje yra 9 „kvadratai“ (sudaryta iš 3 x 3 langelių). Kiekviena horizontali eilutė, vertikalus stulpelis ir kvadratas (po 9 langelius) turi būti užpildyti skaičiais nuo 1 iki 9, nekartojant jokių skaičių eilutėje, stulpelyje ar kvadrate. Ar tai skamba sudėtingai? Kaip matote toliau pateiktame paveikslėlyje, kiekviename Sudoku žaidimo lauke yra keletas langelių, kurios jau užpildytos. Kuo daugiau langelių iš pradžių užpildoma, tuo lengvesnis žaidimas. Kuo mažiau langelių iš pradžių užpildoma, tuo žaidimas sunkesnis.

Nekartokite jokių skaičių

Kaip matote, viršutinis kairysis kvadratas (apbrauktas mėlyna spalva) jau užpildė 7 iš 9 langelių. Šiame kvadrate trūksta tik skaičių 5 ir 6. Pamatę, kurių skaičių trūksta kiekviename langelyje, eilutėje ar stulpelyje, galime naudoti pašalinimo ir dedukcinio samprotavimo procesą, kad nuspręstume, kurie skaičiai turi būti kiekviename langelyje. .

Pavyzdžiui, viršutiniame kairiajame kvadrate žinome, kad norėdami užpildyti kvadratą, turime pridėti skaičius 5 ir 6, tačiau žiūrint į gretimas eilutes ir kvadratus, vis tiek negalime aiškiai nustatyti, kurį skaičių prie kurio langelio pridėti. Tai reiškia, kad dabar turėtume praleisti viršutinį kairįjį kvadratą ir vietoj to pabandyti užpildyti spragas kai kuriose kitose žaidimo lauko vietose.

Nereikia spėlioti

Sudoku yra loginis žaidimas, todėl nereikia spėlioti. Jei nežinote, kokį skaičių įdėti į tam tikrą langelį, toliau nuskaitykite kitas žaidimo lauko sritis, kol pamatysite parinktį įterpti norimą skaičių. Tačiau nesistenkite nieko „primesti“ – „Sudoku“ apdovanoja kantrybe, skirtingų derinių supratimu ir sprendimu, o ne akla sėkme ar spėlionėmis.

Naudokite pašalinimo metodą

Ką darome, kai naudojame „pašalinimo metodą“ Sudoku žaidime? Štai pavyzdys. Šiame „Sudoku“ tinklelyje (parodyta toliau) kairiajame vertikaliame stulpelyje (apbrauktame mėlyna spalva) trūksta tik kelių skaičių: 1, 5 ir 6.

Vienas iš būdų išsiaiškinti, kokie skaičiai gali tilpti į kiekvieną langelį, yra naudoti "pašalinimo metodą" patikrinant, kokie kiti skaičiai jau yra kiekviename langelyje, nes skaičiai nuo 1 iki 9 negali būti dubliuojami kiekviename langelyje, eilutėje ar stulpelyje.


Tokiu atveju galime greitai pastebėti, kad viršutiniame kairiajame ir centre kairėje kvadratuose jau yra skaičius 1 (skaičiai 1 apibraukti raudonai). Tai reiškia, kad kairiajame stulpelyje yra tik viena vieta, kur galima įterpti skaičių 1 (apbrauktas žaliai). Taip Sudoku veikia pašalinimo metodas – išsiaiškinate, kurios ląstelės yra laisvos, kurių skaičių trūksta, o tada pašalinate skaičius, kurie jau yra kvadrate, stulpeliuose ir eilutėse. Atitinkamai užpildykite tuščius langelius trūkstamais skaičiais.

Sudoku taisyklės yra gana nesudėtingos, tačiau žaidimas yra nepaprastai įvairus, turintis milijonus galimų skaičių kombinacijų ir įvairių sudėtingumo lygių. Tačiau viskas pagrįsta paprastais principais – naudoti skaičius nuo 1 iki 9, užpildyti spragas remiantis dedukciniu mąstymu ir niekada nekartoti skaičių kiekviename kvadrate, eilutėje ar stulpelyje.

  • pamoka

1. Pagrindai

Daugelis iš mūsų, įsilaužėlių, žino, kas yra sudoku. Nekalbėsiu apie taisykles, o iškart pereisiu prie metodų.
Norint išspręsti galvosūkį, nesvarbu, koks sudėtingas ar paprastas, iš pradžių ieškoma langelių, kurias akivaizdu užpildyti.


1.1 „Paskutinis herojus“

Apsvarstykite septintąją aikštę. Tik keturios laisvos ląstelės, todėl ką nors galima greitai užpildyti.
"8 " ant D3 blokelių paminkštinimas H3 ir J3; panašus " 8 " ant G5 užsidaro G1 ir G2
Su ramia sąžine mes įdėjome " 8 " ant H1

1.2 „Paskutinis herojus“ iš eilės

Peržiūrėję kvadratus ir ieškodami akivaizdžių sprendimų, pereikite prie stulpelių ir eilučių.
Apsvarstykite " 4 “ Aikštėje. Aišku, kad tai bus kažkur ties linija A .
Mes turime " 4 " ant G3 kad apima A3, yra " 4 " ant F7, valymas A7. Ir dar vienas" 4 “ antroje aikštėje draudžia jį kartoti A4 ir A6.
„Paskutinis herojus“ mūsų „ 4 "Šį A2

1.3 „Nėra pasirinkimo“

Kartais tam tikros vietos priežastys yra kelios. “ 4 J8 būtų puikus pavyzdys.
Mėlyna rodyklės rodo, kad tai paskutinis galimas skaičius kvadratu. Raudona ir mėlyna rodyklės nurodo paskutinį stulpelio skaičių 8 . Žalieji rodyklės nurodo paskutinį įmanomą skaičių eilutėje J.
Kaip matote, mes neturime kito pasirinkimo, kaip tik pateikti tai " 4 "vietoje.

1.4 "O kas, jei ne aš?"

Skaičius užpildyti lengviau naudojant aukščiau aprašytus metodus. Tačiau patikrinus skaičių kaip paskutinę įmanomą reikšmę, taip pat gaunami rezultatai. Metodas turėtų būti naudojamas tada, kai atrodo, kad visi skaičiai yra, bet kažko trūksta.
"5 B1 yra nustatytas remiantis tuo, kad visi skaičiai iš " 1 "prieš" 9 ", be to" 5 “ yra eilutėje, stulpelyje ir kvadrate (pažymėta žalia spalva).

Žargonu tai yra " nuogas vienišius". Jei užpildysite lauką su galimomis reikšmėmis​​(kandidatais), tada langelyje toks skaičius bus vienintelis galimas. Kurdami šią techniką galite ieškoti " pasislėpę vienišiai“ – unikalūs konkrečios eilutės, stulpelio ar kvadrato skaičiai.

2. „Nuoga mylia“

2.1 Nuogos poros
"„Nuoga“ pora“ – dviejų kandidatų rinkinys, esantis dviejuose langeliuose, priklausančiuose vienam bendram blokui: eilutėje, stulpelyje, kvadrate.
Akivaizdu, kad teisingi galvosūkio sprendimai bus tik šiose ląstelėse ir tik su šiomis reikšmėmis, o visi kiti kandidatai iš bendro bloko gali būti pašalinti.


Šiame pavyzdyje yra kelios „nuogos poros“.
raudona eilėje BET ląstelės yra paryškintos A2 ir A3, abiejuose yra " 1 "ir" 6 ". Dar tiksliai nežinau, kaip jie čia yra, bet visus kitus galiu drąsiai pašalinti" 1 "ir" 6 “ iš stygos A(pažymėta geltona spalva). Taip pat A2 ir A3 priklauso bendram kvadratui, todėl pašaliname " 1 "iš C1.


2.2 "Trys"
„Nuogos trijulės“- sudėtinga „nuogų porų“ versija.
Bet kuri trijų langelių grupė viename bloke, kurioje yra iš viso yra trys kandidatai "nuoga trijulė". Kai randama tokia grupė, šie trys kandidatai gali būti pašalinti iš kitų bloko langelių.

Kandidatų deriniai už "nuoga trijulė" gali buti taip:

// trys skaičiai trijose ląstelėse.
// bet kokie deriniai.
// bet kokie deriniai.

Šiame pavyzdyje viskas gana akivaizdu. Penktajame langelio kvadrate E4, E5, E6 yra [ 5,8,9 ], [5,8 ], [5,9 ] atitinkamai. Pasirodo, kad apskritai šios trys ląstelės turi [ 5,8,9 ], ir ten gali būti tik šie skaičiai. Tai leidžia pašalinti juos iš kitų blokavimo kandidatų. Šis triukas suteikia mums sprendimą " 3 "ląstelei E7.

2.3 „Nuostabus ketvertas“
„Nuogos keturios“ labai retas atvejis, ypač visa forma, tačiau aptikus duoda rezultatų. Sprendimo logika yra tokia pati kaip "nuogi trynukai".

Aukščiau pateiktame pavyzdyje pirmajame langelio kvadrate A1, B1, B2 ir C1 paprastai yra [ 1,5,6,8 ], todėl šie skaičiai užims tik tuos langelius, o ne kitus. Geltona spalva pažymėtus kandidatus pašaliname.

3. „Viskas, kas paslėpta, tampa aišku“

3.1 Paslėptos poros
Puikus būdas atverti lauką yra paieška paslėptos poros. Šis metodas leidžia pašalinti nereikalingus kandidatus iš ląstelės ir sukurti įdomesnes strategijas.

Šiame galvosūkyje mes tai matome 6 ir 7 yra pirmame ir antrame langeliuose. Be to 6 ir 7 yra stulpelyje 7 . Sujungus šias sąlygas, galime teigti, kad ląstelėse A8 ir A9 bus tik šios vertės, o mes pašalinsime visus kitus kandidatus.


Įdomesnis ir sudėtingesnis pavyzdys paslėptos poros. Pora [ 2,4 ] in D3 ir E3, valymas 3 , 5 , 6 , 7 iš šių ląstelių. Raudonai paryškintos dvi paslėptos poros, susidedančios iš [ 3,7 ]. Viena vertus, jie yra unikalūs dviem ląstelėms 7 stulpelyje, kita vertus – eilutei E. Geltona spalva pažymėti kandidatai pašalinami.

3.1 Paslėpti trynukai
Galime vystytis paslėptos poros prieš paslėpti trynukai ar net paslėpti ketvertukai. Paslėpti trys susideda iš trijų skaičių porų, esančių viename bloke. Tokie kaip ir. Tačiau, kaip ir tuo atveju "nuogi trynukai", kiekviename iš trijų langelių neturi būti trijų skaičių. dirbs Iš viso trys skaičiai trijose ląstelėse. Pavyzdžiui , , . Paslėpti trynukai bus užmaskuoti kitų kandidatų kamerose, todėl pirmiausia turite tuo įsitikinti trejetas taikomas konkrečiam blokui.


Šiame sudėtingame pavyzdyje yra du paslėpti trynukai. Pirmasis, pažymėtas raudonai, stulpelyje BET. Ląstelė A4 yra [ 2,5,6 ], A7 - [2,6 ] ir langelį A9 -[2,5 ]. Šios trys ląstelės yra vienintelės, kuriose gali būti 2, 5 arba 6, todėl jos ten bus vienintelės. Todėl pašaliname nereikalingus kandidatus.

Antra, stulpelyje 9 . [4,7,8 ] yra būdingi tik ląstelėms B9, C9 ir F9. Remdamiesi ta pačia logika, pašaliname kandidatus.

3.1 Paslėpti ketvertukai

Tobulas pavyzdys paslėpti ketvertukai. [1,4,6,9 ] penktame kvadrate gali būti tik keturiose ląstelėse D4, D6, F4, F6. Vadovaudamiesi savo logika, pašaliname visus kitus kandidatus (pažymėtus geltonai).

4. „Ne guminis“

Jei kuris nors iš skaičių tame pačiame bloke (eilutė, stulpelis, kvadratas) pasirodo du ar tris kartus, galime pašalinti tą skaičių iš konjuguoto bloko. Yra keturi poravimo tipai:

  1. Pora arba trys kvadrate - jei jie yra vienoje eilutėje, galite pašalinti visas kitas panašias reikšmes iš atitinkamos eilutės.
  2. Pora arba Trys kvadrate - jei jie yra viename stulpelyje, galite pašalinti visas kitas panašias reikšmes iš atitinkamo stulpelio.
  3. Pora arba trys iš eilės – jei jie yra tame pačiame kvadrate, visas kitas panašias reikšmes galite pašalinti iš atitinkamo kvadrato.
  4. Pora arba Trys stulpelyje – jei jie yra viename kvadrate, visas kitas panašias reikšmes galite pašalinti iš atitinkamo kvadrato.
4.1 Rodyklės poros, trynukai

Leiskite parodyti jums šį galvosūkį kaip pavyzdį. Trečioje aikštėje 3 "yra tik viduje B7 ir B9. Po pareiškimo №1 , pašaliname kandidatus iš B1, B2, B3. Taip pat, " 2 “ iš aštuntojo kvadrato pašalina galimą reikšmę iš G2.


Speciali dėlionė. Labai sunku išspręsti, bet jei atidžiai pažiūrėsite, galite pamatyti keletą rodyklių poros. Akivaizdu, kad ne visada būtina juos visus rasti, kad būtų pasiektas sprendimas, tačiau kiekvienas toks radinys palengvina mūsų užduotį.

4.2 Neredukuojamo mažinimas

Ši strategija apima kruopštų eilučių ir stulpelių analizavimą ir palyginimą su kvadratų turiniu (taisyklės №3 , №4 ).
Apsvarstykite liniją BET. "2 "įmanomi tik A4 ir A5. laikantis taisyklės №3 , pašalinti " 2 " juos B5, C4, C5.


Ir toliau spręskime galvosūkį. Turime vieną vietą 4 "vieno kvadratinio colio atstumu 8 stulpelyje. Pagal taisyklę №4 , pašaliname nereikalingus kandidatus ir, be to, gauname sprendimą " 2 " dėl C7.

Įkeliama...Įkeliama...