2012-05-30

Pappersdrake av Heighway-modell

Heighway-drake är (tyvärr) inte en eldsprutande mytologisk varelse. För att se sådana så prova här borta. En Heighway-drake är en sorts fraktal som man kan rita upp, en matematisk kurva. Ett sätt att skapa den är att se draken i olika generationer, som skapas enligt:

  • generation 0 (noll) är textsträngen "FX"
  • generation n skapas genom att man i generation (n-1) byter ut alla X mot X+YF+ och alla Y mot -FX-Y.

Man får alltså att de första generationerna av drakar är
Gen 0: FX
Gen 1: FX+YF+
Gen 2: FX+YF++-FX-YF+
Gen 3: FX+YF++-FX-YF++-FX+YF+--FX-YF+


När man ska rita upp kurvan så startar man i punkten (0,0) och har riktningen uppåt. Sedan går man igenom textsträngen och de olika tecknen betyder:

  • F = dra ett streck ett steg framåt
  • + = vrid 90 grader medurs
  • - = vrid 90 grader moturs

X och Y betyder inget när man väl ritar upp kurvan.

Generation 1 och 2, uppritat på rutat papper.

En pappersmodell

Man kan göra sig en modell av en Heighway-drake genom att vika ihop en pappersremsa på mitten, och vika ihop den på mitter igen och så vidare. Sen vecklar man ut remsan, och försöker vå vinkeln i varje veck att bli 90 grader. Jag har några kort på hur en fjärde generationens drake kan se ut, när man vecklar ut den steg för steg.
Generation 1

Generation 2

Generation 3

Generation 4

En app


Pappersmodellerna är bra, men det är svårt att göra drakar av högre generationer. Så en kväll gjorde jag mig en app till min telefon som kan rita upp draken åt mig. I alla fall upp till generation 10, sen klarar inte min telefon av det. Koden är med största sannolikhet inte tillräckligt optimerad för att vara så snabb som den borde, men som tur är har skärmen inte upplösning nog för att visa så mycket mer. Att jag var tvungen att låtsas att jag kan Java, OpenGL och Android SDK för att få till den bidrar nog också till att den inte är den mest optimerade appen.

Min app gör inte mycket. Men det den gör, gör den på en Android-telefon. Den fungerar i alla fall på min, och skulle någon våga prova så finns här: Heighway-app. För att se olika storlekar så drar man fingret höger-vänster över skärmen.


Project Euler - Problem 220

Istället för korsord brukar jag ibland ge mig på något problem från Project Euler. Ibland går det bra, ibland kör jag fast. Problem nr 220 handlar om just Heighway-drakar som är ännu större, som är av ännu högre generation, än de drakar min lilla app ritar upp. Men i problemet består inte i att rita ut draken, utan det är beräkningar som ska göras på kurvan. Problemet (i korthet) går ut på att räkna ut var man hamnar om man går utefter drakens kurva i ett visst antal steg, om man startar i "svansen" som har sin spets i punkten (0,0).

Till exempel, om man (i den första bilden från appen) följer den gröna draken i 5 steg med start där röd och grön drake möts, så hamnar man på punkten (2,-1)

I Project Euler är antalet steg 10 upphöjt till 12 (1000000000000), och jag har inte haft datorkraft/tålamod att låta min dator rita upp en drake av tillräckligt hög generation för att kunna gå de stegen. Men som tur är behöver man som sagt inte rita upp draken, man kan istället räkna ut var man hamnar. För att räkna ut det så skrev jag en liten snutt Haskell-kod, och efter ett par misslyckade försök så lyckades jag komma på hur positionen skulle räknas ut (utan att behöva mer datorkraft/tålamod än vad jag hade tillgång till).

Koden tänkte jag inte lägga ut här, om det är någon som vill ge sig på problemet själv, men i korthet går min lösning ut på att:
  • en drake av generation n består av två drakar av generation (n-1) som börjar från varsitt håll och möts i huvudet.
  • var huvudet på en drake hamnar går lätt att räkna ut om man vet dess generation


2011-09-15

Höstblomma?


If This Then That

Nytt verktyg, If This Then That, som gör precis vad den heter. Den kollar av vad man gör eller vad som händer på till exempel Facebook, Twitter eller så, och man ställer in den så att om Det här händer gör Så där. Det här och Så där ställer man in lite som man själv vill, det finns en mängd alternativ och tjänster man kan använda.


Ingen vidare förklaring, och ifttt är bättre än vad jag lyckats förklara. Läs deras förklaring på http://ifttt.com/wtf


2011-04-29

Röd knapp för varmt?

Jag och LG är inte överens, på en micro tycker jag att röd betyder värm maten. Speciellt när den andra knappen är blå.


2011-03-19

Inte kökslampa

Månen fotad med mobilkamera och teleskop.


2011-03-16

Billigt mobilfodral

Steg 1: skaffa barn som när dom är ungefär 5-6 år växer ur sina strumpor, eller tappat bort en strumpa ur ett par.
Steg 2: ta en barnstrumpa.
Steg 3: vänd den ut och in, så att strumpan blir dubbelvikt.







2011-03-12

Inte månen


2011-03-11

Boll, ungefär


2011-03-10

Android och kontantkort

Jag försöker använda min nya telefon utan mobil data. Jag fortsätter med mitt kontantkort och stänger av datatrafiken (för att slippa betala allt för mycket per månad). För att synka och allt så klarar jag mig med wifi. Det är klart att jag missar lite av fördelarna med en androidtelefon
Men det finns wifi där jag är mest, och som sagt så är den låga månadskostnaden väldigt skön.

En till bonus är att jag inte får dåligt samvete för att jag "stänger" av ibland. När jag inte har täckning så går det inte, och har jag täckning så kan jag utan att skämmas slå på flygplansläget. Perioderma mellan wifi gör att jag har vant mig vid att allt inte går att nå jämt. Jag kan alltså inte kolla mail osv hela tiden
Med flygplandläget så slipper jag även vanliga samtal. Jag försöker intala mig själv att nåbarhet och tillgänglighet sker på mina villkor.

Det är lite "surt sa räven", och det förstår jag. Om jag skaffade mig abonnemang med datatrafik så skulle jag fortfarande kunna stänga av när jag vill, och jag skulle kunna synka även när jag inte är nära "mina" wifi-platser. Men det var ju det där med kostnaden också...

2011-03-05

Ny telefon

Har skaffat mig en ny telefon, en som nästan är modern. Den är en Huawei U8150 som är en android-telefon (froyo), men med ganska klen hårdvara. 

Den fungerar bra men klarar inte allt, men tillräckligt för att den ska vara kul. Och ibland nyttig. När den dessutom kostar mindre än 1000 kr så känns den ännu bättre.
Jag har bara haft den någon dag så jag har inte lärt mig den helt än. Men det är ju det som är det roliga med ny teknik.

2011-02-12

Semla

2011-02-03

Alice har fångat Ludvig

2011-01-28

Nya stövlar

Sonen gillar sina nya vinterstövlar, så då får dem stå i bokhyllan.

2010-12-24

Julstrumpor på

2010-12-12

Julgranskula?

...eller uggla!

2010-08-30

Chaaaa-pys

Vi möttes av Darth nall-e, komplett med ljudeffekter.

2010-08-11

hängmatta

2010-07-20

Det stora blå?

2010-07-15

Chewbacca

2010-06-03

nostalgi-golv