Encsé Gently

Vettünk hűtőt, egy élmény volt… Végigjártuk az összes boltot, kiválasztottuk a jót, aztán a neten kikerestük a legolcsóbb helyet és megrendeltük. Eddig jól is ment, csak a kiszállítás volt szar, mert nem tudták megmondani, hogy melyik nap hozzák majd, csak előtte este hét és nyolc között. Aztán vegyél ki szabadságot másnapra… Majd biztos jön valami buzgómócsing megint, aki szerint ez így kurva jó, de engem akkor is idegesít.

Hétfőn beszéltem a sofőrrel, jól elmagyaráztam neki, hogy melyik utcát írja be a GPS-be, nehogy elkavarodjon, ugyanis a széleskörben használt GPS-es térképek nem tudják, hogy a mi utcánk zsákutca, és a rossz irányból próbálják  megközelíteni. (Az ilyenek Érden általában járhatatlan földutat jelentenek.)

Naszóval elmondtam a józsinak, hogy mit csináljon, ha nem akar a susnyásban kikötni. Egy óra múlva hívott.

- Uram, itt vagyok az erdő közepén, már nem fér el az autó az úton!

- Forduljon vissza, és csinálja amit korábban megbeszéltünk.

- Nem tudom merről jöttem.

Végül kikeveredett az aszfaltra úgy, hogy közben telefonon diktáltam neki, hogy merre menjen. Akkor meg azzal kezdett jönni, hogy ugye van otthon valaki férfiember, mert ő nem bírja el a hűtőt. Hát a faszomat nem bírod el bazmeg, milyen szállítás ez már? Mondom neki, nincs otthon senki, csak a terhes asszony, de oldja meg valahogy, mert ez a munkája. Na ezek után lebaszta a ház elé az egészet. Dáviddal kellett hazamenni becipelni.

A hűtő elhelyezése volt a legmókásabb, ugyanis a kamra ajtaja (valójában nincs ajtaja, csak egy nyílás), naszóval az ajtó kicsit kisebb volt mint a hűtő. De nehogy azt gondolják ám, hogy nem számítottam erre előre… Már jóval korábban kikalkuláltam Mapleben azt a legnagyobb frigóméretet, ami még éppen bevihető egy kis ügyeskedéssel.

Az alábbi ábrából induljunk ki:

IMG_0507[1]

Ez egy oldalnézeti kép. A csíkozott rész jelöli a falat, a piros téglalap a hűtő, amit addig döntünk, amíg a legmagasabb pontja éppen a nyílás magasságába nem esik, ezután rátoljuk a kamra falára, majd elkezdjük a talpára állítani, miközben végig hozzáér a hátsó falhoz. A hűtő méretei H_x, H_y, a kamráé K_x, K_y. Egy adott pillanatban a helyzetet egy \alpha szöggel jellemezhetjük. A kérdés az, hogy van-e olyan \alpha a [0,\pi/2] tartományban, amikor a (K_x, K_y) pont a hűtő belsejébe kerül.

Egészítsük ki az ábrát az A és B pontokkal, az ezeken átmenő e egyenessel. Toljuk el e-t e’-be, ami a hűtő külső oldalán fut végig, és vegyük fel a talajjal és a fallal alkotott metszéspontokba az A’, B’ pontokat.

IMG_0508[1]

Kis trigonometrikus bűvészkedéssel A = (H_y\cos\alpha, 0), B=(0, H_y\sin\alpha), valamint A’ = (H_x/\sin\alpha + H_y \cos\alpha, 0), B’=(0, H_x/\cos\alpha + H_y\sin\alpha). Az \overrightarrow{AB} = (-H_y \cos\alpha,  H_y \sin\alpha) óramutató járása szerinti 90 fokos elforgatásával és a hosszával való osztás után kapjuk az egyenes normálvektorát: \underline{n}=(\sin\alpha, \cos\alpha).

 e’: n_x(x-A’_x)+n_y(y-A’_y) = x\sin\alpha-H_x-H_y\sin\alpha \cos\alpha + y\cos\alpha=0

Ez az egyenes normálvektoros egyenlete. Mivel az x és y együtthatójának négyzetösszege 1, az egyenlet bal oldalába helyettesítve a (K_x, K_y) pont koordinátáit, éppen a pont és egyenes (előjeles) távolságát kapjuk. (Nem emlékszem hogy hívják az egyenesnek ezt a fajta egyenletét.)

Már csak azt kell kiderítenünk, hogy adott K_x, K_y, H_x, H_y mellett van-e olyan \alpha, amire a K_x\sin\alpha-H_x-H_y\sin\alpha \cos\alpha + K_y\cos\alpha < 0 feltétel teljesül.

Sajnos a feladatot analitikus eszközökkel nem lehet megoldani (legalábbis nem sikerült), de megoldható Maple-ben numerikus módon.

Egész pontosan a kiválasztott hűtők paramétereivel megkerestem a távolság minimumát a [0,\pi/2] tartományban és megnéztem, hogy pozitív-e.

A végeredmény szerint választottunk hűtőt és bár hihetetlen, de tényleg befért, még szenvedni sem kellett vele.

Breaking

Megoldható a fenti csoda a tanges félszögekkel kapcsolatos azonosságok felhasználásával. Ekkor egy negyedfokú egyenletre írható a fenti, onnan meg már…

Költözés

Nagyjából végeztünk a csomagolással, és mindjárt lekapcsolom a routert, úgyhogy ezek az információmorzsák ezen az ADSL vonalon tőlem.

Köszönöm, hogy velem tartottak idáig is, és alig várom, hogy milyen problémák elé állít majd a következő korszak. Mert hát akárhogy is vesszük ez most egy korszak vége, és egy újabb, sokkal érdekesebb dolog kezdete. Szomorú vagyok, hogy el kell mennem innen, mert nagyon szerettem ezt a lakást, gyakorlatilag minden két sarokra volt, ami meg nem az átszállás nélkül megközelíthető. Hát ezt most becseréljük egy zöldövezeti házikóra, aminek lássuk be szintén megvan a maga varázsa. De azért mégis 5 év alatt nagyon megszoktam a jelenlegi kényelmes helyemet.

Hát ennyi, semmi mélyenszántó nem jut az eszembe. Remélem hamarosan lesz majd egy újabb felütés, amit már a kertemből, egy kényelmes nyugágyból vagy valami hasonlóból fogok írni.

Addig is maradjanak rosszak.

Problem of the week – 9 Digit Problem

I’ve posted the following challenge to the jokes list of our company the last week, and asked my collegaues to use their imagination and exploit as many programming languages as possible, the more exotic the better…

Find a number consisting of 9 digits in which each of the digits from 1 to 9 appears only once. This number must also satisfy these divisibility requirements:

  1. The number should be divisible by 9.
  2. If the rightmost digit is removed, the remaining number should be divisible by 8.
  3. If the rightmost digit of the new number is removed, the remaining number should be divisible by 7.
  4. And so on, until there’s only one digit (which will necessarily be divisible by 1).

A couple of solutions arived, mostly from Maya and Cactus. Right now we have programs written in C#, Perl, Haskell, XSLT and Maya took our very own intentional editor and our internal language called CL1 and solved the problem in that. It could cleary be written in a much better style, but hey… that’s not so bad.

See the list of solutions here.

If you find that your favourite language is missing, don’t hesitate to share it with us, just provide a link to you solution, or copy the source code in the comment box below (bonus points for a Javascript XSS that works). I’m really longing for a version written in mod-rewrite and one with C++ template meta programming…