Չորս բաժակների խնդիր

Չորս բաժակների խնդիր, Մարտին Գարդների տրամաբանական հանելուկը, որը հրապարակվել է Scientific American ամսագրի 1979 թվականի փետրվարյան թողարկման «Մաթեմատիկական խաղեր» սյունակում։

Ձևակերպում 
Չորս բաժակները գտնվում են պտտվող քառակուսի սեղանի անկյուններում։ Որոշ բաժակներ դրված են ուղիղ, իսկ որոշները՝ շրջված։ Աչքերը կապած մարդը պետք է բաժակները այնպես վերադասավորի, որ դրանք բոլորը լինեն նույն դիրքում, այդ դեպքում հնչում է զանգը։ Բաժակները կարող են հերթով վերադասավորվել հետևյալ կանոններին համապատասխան․ ցանկացած երկու բաժակ կարող է ստուգվել մեկ քայլով, և զգալով դրանց դիրքը, մարդը կարող է փոխել նրանցից որևէ մեկի  կամ երկու բաժակների դիրքը։ Յուրաքանչյուր շրջումից հետո սեղանը կարող է պտտվել պատահական անկյան տակ։ Խնդիրն այն է, որպեսզի մշակվի ալգորիթմ, որը աչքերը կապած մարդուն թույլ կտա, որ նա համոզվի, որ բոլոր բաժակներ ունեն նույն դիրքը (ուղիղ կամ շրջված) վերջնական թվով շրջումներից հետո։ Ալգորիթմը չպետք է կախված լինի հաջողությունից։

Լուծում 
Ալգորիթմը, որը երաշխավորում է, որ զանգը կհնչի ոչ ավելի, քան հինգ պտույտներից հետո, հետևյալն է․
 Առաջին հերթին ընտրում են անկյունագծով միմյանց հակառակ դրված երկու բաժակները և շրջում դրանք։
 Երկրորդ հերթին ընտրում են երկու հարևան բաժակներ։ Առնվազն նրանցից մեկը նախորդ քայլից հետո ուղիղ է։ Եթե մյուսը շրջված է, պետք է այն նույնպես շրջել։ Եթե զանգը չհնչի, ապա այժմ երեք բաժակները դրված են ուղիղ, իսկ մեկը՝ շրջված։
 Երրորդ հերթին ընտրում են անկյունագծային հակառակ զույգ բաժակներ․ եթե նրանցից մեկը շրջված է, պետք է ուղղել այն, և զանգը կհնչի։ Եթե երկուսն էլ ուղիղ են, պետք է մեկը շրջել։ Այժմ երկու բաժակ շրջված են և գտնվում են միմյանց կողքի։
 Չորրորդ հերթին ընտրում են երկու հարևան բաժակները և շրջում երկուսն էլ։ Եթե երկուսն էլ նույն դիրքն ունեն, ապա զանգը կհնչի։ Հակառակ դեպքում, այժմ երկու բաժակներն ել շրջված են, և նրանք գտնվում են միմյանց հակառակ անկյունագծով։
 Հինգերորդ հերթին ընտրում են անկյունագծով  միմյանց հակառակ դրված երկու բաժակները և երկուսն էլ շրջում են, ինչից հետո զանգը կհնչի։

Ընդհանրացում 
Գլուխկոտրուկը կարելի է ամփոփել չորս բաժակների փոխարեն n բաժակների համար։ Երկու բաժակների համար դա լուծվում է մեկ քայլով՝ շրջելով ցանկացած երկու բաժակը։ Երեք բաժակների համար գոյություն ունի երկու պտույտի ալգորիթմ։ Հինգ և ավելի բաժակների համար գոյություն չունի ալգորիթմ, որը երաշխավորում է, որ զանգը կզանգահարի վերջնական քանակի պտույտների դեպքում։

Հետագա ընդհանրացումը թույլ է տալիս ստուգել n բաժակից k բաժակ (երկուսի փոխարեն) յուրաքանչյուր հերթին։ Կարելի է գտնել մի ալգորիթմ, որը լուծում է խնդիրը վերջնական թվով քայլերի դեպքում, եթե k ≥ (1-1/p)n, որտեղ p-ը n-ի ամենամեծ պարզ բազմապատկիչն է։

Ծանոթագրություններ 

Տրամաբանական խաղեր