Minkowski-Snøfnugg


Minkowski-snøfnugg, også kjent som kvadratisk Koch-snøfnugg (eller øy), er en fraktal-øy satt sammen av fire Minkowski-kurver.

Minkowski-kurven kan konstrueres iterativt (eller rekursivt) fra et rett linjestykke. For hver iterasjon byttes hvert linjestykke ut med åtte mindre linjestykker med lengde en fjerdedel av det opprinnelige linjestykket, satt sammen slik som vist i figuren under:

Minkowski-snøfnugget består av fire slike kurver satt sammen i en "firkant", og kan konstrueres fra et kvadrat som vi nå kaller nivå-0 Minkowski-snøfnugg. Gjennomfører man transformasjonen beskrevet over på hvert linjestykke i kvadratet får man nivå-1 snøfnugget, og gjør man det igjen for alle linjestykkene i nivå-1 snøfnugget får man nivå-2 Minkowski-snøfnugget osv.

Snøfnuggene av nivå-0, 1 og 2:

Oppgaven her er å konstruere et nivå-3 Minkowski-snøfnugg som oppfyller følgende:

  1. Alle linjestykkene har lengde 1.
  2. Snøfnugget skal ligge akkurat innenfor første kvadrant, slik at undersiden og venstresiden ligger henholdsvis inntil linjene y = 0 og x = 0.

Output fra koden skal være koordinatene til snøfnuggets linjestykkers endepunkter, skrevet ut på følgende måte:

  1. Start med det punktet på den "underste" Minkowski-kurven som ligger nærmest origo, altså endepunktet som ligger til "venstre".
  2. Skriv så ut de påfølgende punktene i rekkefølgen de kommer i når kurven følges mot klokken.
  3. Hvert punkt skrives ut på en ny linje og har følgende format: (x, y).
    • Det er altså ingen desimaler i x og y, og det skal være ett mellomrom etter kommaet.

Snøfnugget som skal konstrueres er vist i figuren under, og første punkt er markert med rød sirkel:

Starten på outputet er som følger:

(21, 21)
(22, 21)
(22, 22)
(23, 22)
(23, 21)
...

Det er ikke tillatt med brukerinput via f.eks. input() eller raw_input() i løsningen. Merk: kodegolfen bruker python2. I tillegg er det noe funksjonalitet som ikke støttes av kommandotolken. Dersom du er helt sikker på at du har en fungerende løsning, men likevel ikke får den til å kjøre på nettsiden, så kan det hende at du har brukt funksjonalitet som ikke er støttet. Så selv om vi anbefaler at du utvikler koden i ditt lokale miljø så kan det være greit å teste på nettsiden også, spesielt hvis du planlegger å bruke litt "eksotiske" funksjoner.


[[ errors ]]
Riktig output! Din skår: [[ outputLength ]] tegn!
Koden din er lengre enn den beste du har sendt inn. Du kan sende den inn, men skåren din vil ikke endres.
    

Output:

[[ output ]]

Resultatliste:

Se dine resultater
Se andre oppgaver
BrukerResultat(antall tegn)
Martin Tufte 101
Amund Eggen Svandal 101
Knut Andre Grytting Prestsveen 102
Thorvald Ballestad 103
Oskar Feed Jakobsen 122
Alexander Johan Arntzen 138
Herman Sletmoen 149
Eirik Høydalsvik 159
Alfred Gilje Sanne 173
Sondre Klyve 178
Sander Ruud 271
Jacob Oliver Bruun 407
Jonas Bueie 443