A következő címkéjű bejegyzések mutatása: karácsony. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: karácsony. Összes bejegyzés megjelenítése

2019. december 25., szerda

Év végi gyufafeladvány

Maximum három gyufaszál áthelyezésével érd el, hogy a karácsonyfán a vízszintesen összeolvasott számok összege 2019 legyen!

2017. február 20., hétfő

Karácsonyi és újévi feladványok megoldásai

A karácsonyi gyufafeladványra húszan küldtek be helyes megoldást vagy megoldásokat. Mindhárom kitűzött verzióra több megoldás is létezik. Azt a bevezető szöveget, hogy ezek az év legnehezebb gyufafeladványai, csak ösztökélésnek szántam, egyébként mindegyik feladvány megoldható volt kevesebb gyufaszál áthelyezésével. Aki kevesebbel meg tudta oldani, vagy több megoldást küldött, plusz pontot kapott. Egyesek segédprogramot is írtak, amivel automatikusan kerestek megoldásokat. A program persze csak bizonyos sémák alapján tud keresni, amit beleprogramoztak, így a kreatívabb megoldásokat, amikre a program írója nem gondolt, azt nem tudja megtalálni. Az alábbiakban néhány érdekesebb megoldást szedtem össze.

Egy sokak által talált megoldás nulla használatával és három gyufaszál áthelyezésével:
9+87+654+3210+9 → 0+87+694+4210+9 = 5000

Egy olyan megoldás négy gyufaszál áthelyezésével, ahol háromjegyű számból négyjegyűt csinálunk:
9+87+654+3210+9 → 3+37+6641+3310+9 = 10000

10000-re van több megoldás három gyufaszál áthelyezésével is:
9+87+654+3210+9 → 3+67+654+9270+6 = 10000
9+87+654+3210+9 → 6+61+654+9270+9 = 10000

Egy kreatív lehetőség négy gyufaszál áthelyezésével, amiben egy új számot, illetve számjegyet, új sorba rakunk:
9+87+654+3210+9 → 4+87+694+9210+4+1 = 10000

Egy másik kreatív lehetőség a negatív számok használata, ráadásul így a kitűzöttnél kettővel kevesebb gyufaszállal is megoldható volt az Ördöglakat blogon kitűzött feladvány:
1+23+456+7890+1 → -7-23+156+1890+1 = 2017

Van azonban 2017-re negatív számok nélkül is megoldás három gyufaszál áthelyezésével:
1+23+456+7890+1 → 1+29+956+1030+1 = 2017

Egy saját megoldás, amit mások nem találtak meg, amikor az egyik számjegyet kettéválasztjuk, és a nyolcas számjegyből két egyes lesz:
9+87+654+3210+9 → 9+1117+655+3210+9 = 5000

Van egy különleges megoldás, ami négy gyufaszál áthelyezésével működik, de működhet hárommal is, ha az egyes számjegyet a számjegyhez tartozó mező jobb oldalára rendezve jelenítjük meg kezdetben, ahogy egyébként szokásos. Ekkor a 10-es részt kevesebb gyufaszál áthelyezésével is át lehet alakítani 41-re összekötve az egyes számjegyet a nulla bal oldalával:
9+87+654+3210+9 → 9+87+1654+3241+9 = 5000

Két gyufaszál áthelyezésével is lehet érdekességeket kihozni:
9+87+654+3210+9 → 5+81+694+9210+9 = 9999

9999-et egyébként közészúrással is ki lehet hozni, ami még egy további módszer három gyufaszál áthelyezésével:
9+87+654+3210+9 → 9+217+554+9210+9 = 9999

És van még megoldás sok más számra is, például két gyufaszál áthelyezésével 4000-re. Három gyufaszál áthelyezésével 3000, 6000, 7777, 8888 kihozható. Négy áthelyezéssel pedig 2000, 8000, 2222, 3333, 4444, 5555, 6666 megkapható.


Most pedig térjünk át az újévi kalkulátoros feladvány megoldásaira. Ezekből szintén rengeteg van. Ennél is voltak néhányan, akik programot írtak a keresésre, de olyan sok lehetőség van, hogy a legtöbben nem tudták az összeset végigpróbálgatni program segítségével sem, ezért csak bizonyos sémákat vettek végig, amikkel várható volt, hogy sok megoldást találnak. Meg kell jegyezni, hogy mindenkinek megadtam a maximális pontot, aki bármilyen megoldást talált, de a duplapluszkreatív pontversenyben, azaz plusz pontokban csak az kaphatot maximálisat, aki legalább egy szép megoldást is küldött. Szép megoldásnak én azt nevezem, amiben nincsen nullával vagy eggyel való szorzás, eggyel való osztás, és nullát sem osztjuk semmivel, továbbá nem kezdődik nullával többjegyű szám. Még szebb továbbá az olyan megoldás, ami egyszerre működőképes a kétféle számológép típussal.

Néhány szép megoldás azonos sémára P. G. beküldőtől , ahol a számológép típusa is lényegtelen:
95*76/4+230-18 = 2017
96*78/3-520+41 = 2017
92*76/4+350-81 = 2017
72*69/4+810-35 = 2017
36*87/2+541-90 = 2017

Ugyancsak szép megoldások másoktól, nagyon hasonló sémára:
507*16/4-39+28 = 2017
1027*8/4+56-93 = 2017

Pavkoni nevű beküldő igazán átfogó elemzést csinált programmal. Sikerült végignéznie az összes lehetőséget. Ennek számossága: 10!*126*4! = 10973491200, ahol 126 = 9*8*7*6/(4*3*2*1) annak a számossága, hogy hányféleképpen szúrhatunk be tíz szám közé négy operátort, ha a mínusz jelet előjelként nem használjuk. A program kivette a nullával kezdődő számok esetét, így 25362 megoldást talált a részeredménnyel tovább számoló, és 33480-at a végén kiértékelős kalkulátorra. Meg kell azonban jegyezni, hogy a program különböző megoldásnak tekinti az alábbi lényegében ekvivalens felírásokat:
98/7-65+1034*2 = 2017
98/7-65+2*1034 = 2017

Pavkoni megvizsgálta azt is, hogy kevesebb számjeggyel hogyan oldható meg 2017 felírása. Azt találta, hogy 0-tól 6-ig használva a számjegyeket van 5+8 megoldás, de a hatos számjegyet elhagyva már nem megoldható a feladat. Ezen kívül Pavkoni azt is megnézte, hogy melyik a legkisebb pozitív egész szám, amihez nincsen megoldás. A részeredménnyel tovább számolós esetben ez a szám a 727234, míg a végén kiértékelős esetben 171720.

A pontverseny állása az első két fejtörőre küldött megoldások kiértékelése után megtalálható ebben a táblázatban: itt.

2016. december 15., csütörtök

Karácsonyi gyufafeladvány

Ha valaki pihenni és lazítani szeretne karácsonykor, akkor gyorsan kattintson el innen, mert ez itt az év két legnehezebb gyufafeladványa. Legfeljebb négy gyufaszál áthelyezésével kell elérni azt, hogy a vízszintesen összeolvasott számok összege 5000 vagy 10000 legyen. Kellemes karácsonyi kikapcsolódást kívánok minden kedves olvasómnak!

Ez a feladvány egyébként az első kitűzött feladat a 2017-es fejtörő pontversenyben, ahol havonta fognak megjelenni vadonatúj fejtörő feladványok. A feladvány beküldési határideje január 15. A megoldásokat a jobb oldalsáv tetején található e-mail címre kell beküldeni. A 2017-es év végén a pontverseny legjobbjai értékes díjakban fognak részesülni. A nyereményjáték részleteit itt lehet elolvasni.

2014. december 25., csütörtök

A 30-as szabály

Akik karácsonykor nem állítottak karácsonyfát környezettudatossági vagy egyéb szempontok miatt, azoknak ajánlom szeretettel az alábbi fraktális pszeudo-random végtelen karácsonyfa imitációt. Természetesen fraktál generátorokkal ennél sokkal élethűbb fenyőfák is generálhatók, azonban az alábbi mintázat egy különösen egyszerű szabállyal adható meg, amit ugyanis az ábrán látunk az nem más, mint egy egyetlen sejtből kiinduló egydimenziós bináris sejtautomata időfejlődése.

De mik is azok a sejtautomaták? Az 1940-es években Neumann Jánost az a kérdés foglalkoztatta, hogy miféle logikai szerkezet szükséges egy olyan automatikus géphez, amely önmagát képes reprodukálni. Ennek kapcsán sikerült megalkotnia az első sejtautomatákat, és példát mutatott síkbeli önreprodukáló automatákra. Általában véve a sejtautomaták diszkrét dinamikus rendszerek, a sejtautomatát alkotó sejtek ugyanis diszkrét térben helyezkednek el, véges sok különböző állapotuk lehet, tehát diszkretizált az állapotterük, és a sejtek diszkrét időlépésekben szinkron módon frissülnek, azaz egyszerre változtatják az állapotukat a rendszer időfejlődése során. A sejtek valamilyen mozaikszerű elrendezésben találhatók, általában egy szabályos rácson helyezkednek el, amely lehet akár több dimenziós is. Egy sejt következő állapota mindig csak a szomszédai és önmaga aktuális állapotától függhet, vagyis nincsen távolhatás. A következő állapotot leíró ún. generációs vagy átmeneti szabályok alap esetben determinisztikusak, azaz nincsen bennük véletlen elem, és így teljes mértékeben ezek határozzák meg a sejtautomata dinamikáját.

A legismertebb sejtautomata a sokak által jól ismert életjáték, a legegyszerűbbek azonban az ún. elemi sejtautomaták. Egy elemi sejtautomata nem más, mint egy egydimenziós vonalba rendezett sejtsor kétállapotú sejtekkel, mely állapotokat élő és holt jelzővel szokás illetni. Az elemi sejtautomatákat könnyű számba venni, mert megadhatók a szabállyal, ami meghatározza, hogy mi lesz egy sejt állapota annak függvényében, hogy mi volt a bal- és jobboldali szomszédjának illetve önmagának az állapota az előző lépésben. Mivel mindhárom sejt állapota kétféle lehet, ezért összesen nyolc kombináció van, amire meg kell adnunk, hogy mi lesz a következő lépésben a középső sejt új állapota. Az új állapot is csak kétféle lehet, így a lehetséges szabályok száma 2^8 = 256. Ennek megfelelően az elemi sejtautomata megadható egy a szabályt kódoló bináris számmal, amint az illusztráló ábrán is látható. Ezt a sorszámot nevezzük a szóban forgó elemi sejtautomata Wolfram kódjának. Eszerint beszélünk tehát a 30-as szabályról, arról az elemi egydimenziós sejtautomatáról, amelynek Wolfram kódja 30.

A sejtautomaták dinamikai fejlődését tehát megadják az átmeneti szabályok, azonban a mintázatok kialakulásához egy kezdeti állapotot megadása is szükséges. A fenti karácsonyfa szerű ábrán a kezdeti állapot egyetlen élő sejt (fekete színnel jelölve) a sejtsorban, a fenyőfa csúcsa, és lefelé telik az idő, azaz minden egyes sor a sejtautomata következő állapotát mutatja. A legtöbb szabályról kiderül, hogy egészen egyszerű viselkedést mutatnak, akármilyen kezdő állapotból indítjuk a rendszert, rövid időn belül kialakul egy stabil konfiguráció, ami nem változik tovább, vagy valamilyen időben periódikusan ismétlődő mintázat alakul ki. A 30-as szabály sorszám szerint az első, ahol valami igazán meglepő viselkedést találunk. Ez a sejtautomata a Wolfram-féle osztályozás szerint 3-as osztályú, ami azt jelenti, hogy aperiodikus, kaotikus viselkedést mutat, mégpedig majdnem minden kezdeti állapotra, nem csak a fenti kezdőfeltétel esetén. Bár vannak benne struktúrák, de azok előfordulása látszólag véletlenszerűnek tűnik, aminek az az oka, hogy a mintákat szétzilálja a környező pszeudo-random zaj.

Ez az igen egyszerű sejtautomata megdöbbentő példa arra, hogy komplex, látszólag véletlenszerű mintázatokat egészen egyszerű és determinisztikus szabályok elő tudnak állítani. A természetben is megfigyelhetünk hasonló mintázatképződést, ahogyan az a Conus textile tengeri csiga faj házán is látható. A szabály igen egyszerű volta miatt gyakorlati haszna is van, meg lehet mutatni ugyanis, hogy a "karácsonyfa" középső oszlopa teljesíti az alapvető véletlenszám teszteket, ezért véletlenszám generátornak is használják, például a Wolfram által kifejlesztett Mathematica programcsomagban, és ebből kifolyólag kriptográfiai alkalmazásai is vannak.

Ui.: A pentagram táblás türelemjáték beküldési határideje karácsony volt. Két rendszeres olvasómtól is kaptam megoldásokat, mindketten számítógépes programmal oldották meg a feladatot, ugyanis rendelkezésükre állt olyan általuk már korábban kifejlesztett algoritmus, amellyel tetszőleges türelemjáték megoldható. Azt nagyon sajnálom, hogy mások nem foglalkoztak vele, mert számítógép nélkül is hamar lehetett volna megoldást találni. Már csak azért is, mert rengeteg megoldás van. Gál Péter az Ördöglakat blog szerkesztője az összes megoldást megadta, szimmetriáktól eltekintve közel 72 ezer megoldást. Az eredményekről később még részletesen írok, az új fejtörő feladvány pedig szilveszterkor kerül kitűzésre.

2013. december 15., vasárnap

Tensegrity a karácsonyfán

Képzeljünk el egy szerkezetet, amely csupa rúdból áll, amely rudak a végpontjaikban egymáshoz vannak rögzítve, de a rögzítési pontok körül szabadon elforoghatnak. A rudak végére ideális gömbcsuklókat képzelhetünk, amik ezt megvalósítják. Az ilyen szerkezeteket rúd-csukló szerkezeteknek nevezzük, és megkérdezhetjük, hogy merev-e egy ilyen szerkezet. Egy tetraéder élváza például merev. Egy kocka nem merev, mert össze tud csuklani, viszont merevíthető néhány lapátlóval, ezt szokták csinálni az állványzatok építésénél is. Bár az állványzatok esetében a rudakat nem gömbcsuklók kötik össze, de a kötés sose tökéletes, ezért abban az esetben, ha nem merevítenék átlókkal a szerkezetet, akkor inogna. Minél több merevitőt használunk, annál stabilabb és biztonságosabb lesz a szerkezet. Olyan ez mint síkban a háromszögelés. Térben tetraéderekből építkezve mindig merev élvázat kapunk.

De mi van akkor, ha nem csak merev rudakból építkezünk. Hidaknál gyakran előfordul, hogy kábeleket vagy láncokat is használnak. Ez utóbbiaknak lényeges tulajdonsága, hogy feszíteni lehet őket, de nem tudjuk őket két végüknél fogva összenyomni, azaz húzni tudnak, de tolni nem. Ha például csak kötelekből szeretnék merev hálózatot készíteni, az lehetetlen. A pókháló ugyanis csak akkor kifeszíthető, ha egy külső merev kerethez csatlakozik. Ha viszont van egy meglévő rudakból álló szerkezet, akkor abba van értelme plusz merevítőként köteleket és kábeleket is használni. Most pedig jöjjön a találós kérdés. Ha nincsen kezdetben összefüggő rúdszerkezet, akkor azt vajon tudják-e merevíteni kötelek. Konkrétan, létezik-e olyan csak kötelekből és rudakból álló szerkezet, amely merev, de a rudak sehol nem érintik egymást, még a végpontjaikban sem? Sajnos a bejegyzés címe elég árulkodó. Nyilván kitaláltátok, hogy léteznek ilyenek, és tensegrity szerkezeteknek hívják őket. Csak így elmondva, egyesek nem érzik át ennek a különlegességét, mások meg lehetetlennek tartják, hogy ilyen tényleg létezik, ezért nagyon tanulságos egy ilyen tensegrity szerkezetet elkészíteni. Karácsony közeledtével most elmondom, hogyan lehet tensegrity karácsonyfadíszt készíteni otthon, amely szép is, és az elkészítése és a léte önmagában is tanulságos.

Tetszőleges szerkezetű tensegrity készítése nem lenne künnyű feladat, főleg kis mérteben, hiszen a tensegrity csak a rudak és kötelek összeállítása után nyeri el merevségét, és az építés közben nehéz lenne térben megtartani az alakzatot csupán két kezünkkel. A most bemutatásra kerülő szerkezetben azonban több trükköt is alkalmazunk. Bár a legegyszerűbb tensegrity csupán három rudat tartalmaz, amelyek a tér három irányát feszítik ki, azonban mi egy hat rudas változatot fogunk készíteni, amely szép szimmetriával rendelkezik megkönnyítendő a munkánkat. Másrészt kötelek helyett befőttesgumikat fogunk használni, amelyeket nem kell majd kötözni. A gumi természetesen azt eredményezi majd, hogy nem lesz tökéletesen merev a szerkezet, de egyensúlyban lesz, azaz feldobva a levegőbe nem esik szét, és a rugalmassága miatt megfigyelhetjük a különleges deformációs tulajdonságait is. Ha a gumifonál helyére nyújthatatlan kötelet képzelünk, akkor valóban egy teljesen merev tensegrity szerkezetet kapunk.

A szerkezet fillérekből és nagyon gyorsan elkészíthető. Nincs másra szükség, mint szívószálakra és befőttesgumira. Érdemes szép színes 7-8 mm átmérőjű ún. koktél szívószálakat használni, mégpedig három féle színt, mert három pár párhuzamos rúd alkotja az alakzatot. A szívószálakból 7-8 cm hosszú egyforma darabokat vágjunk le, és a végeiken kisollóval csináljunk 2-3 mm mélyen apró V alakú bemetszéseket, minden szívószál végén kettőt egymással szembe, mégpedig úgy, hogy a fügőlegesen tartott szívószálak esetében a bemetszések pont egymás alá essenek. A szívószálakból készítsük el az első ábrán látható kereszet alakzatot, és hat befőttesgumival rögzítsük a szerkezetet. A itt használt befőttesgumikat a végén el fogjuk vágni, csak azt a célt szolgálják, hogy ne mozduljon el a szerkezet váza, amíg a többi gumikarikát felhelyezzük.


A tensegrity szerkezetet stabilizáló hat gumikarikát úgy kell felhelyezni a szívószálakra, hogy minden rúdra kerüljön egy karika, olyan módon, hogy a gumikarikák átellenes pontjait akasszuk a rúd két végén lévő vájatokba, és gumit vezessük át egy a rúdra merőleges rúdpár végpontjaiban lévő vájatokon. A vájatokat előzetesen érdemes a megfelelő irányba állítani. Fontos, hogy egyforma és használatlan gumikat használjunk, és azokat szimmetrikusan feszítsük ki. Az is lényeges, hogy vájat olyan szűk és éles legyen, hogy a beleakasztott gumi ne tudjon odébbcsúszni, mert egyébként nem maradna meg a szerkezet. Ha befejeztük a gumik felhelyezését, akkor a segédgumikat elvágva a szívószálak eltávolodnak és megszületik a tensegrity szerkezet. Ha egy kicsit deformált, akkor a gumikarikákon még igazíthatunk, az a lényeg, hogy minden él egyforma hosszú és egyformán feszes legyen. Ha jól csináltuk, akkor a kapott szerkezet konvex burkolójában egy ikozaéderre ismerhetünk rá. Természetesen tetszés szerint más anyagokat is használhatunk, a szívószálnál erősebb lufipálcát, hurkapálcát, bambuszt, stb. Ilyenkor a vájatokat érdemes például reszelővel kireszelni.