The Swype Input Method Degree Project in Computer Science

Storlek: px
Starta visningen från sidan:

Download "The Swype Input Method Degree Project in Computer Science"

Transkript

1 The Swype Input Method Degree Project in Computer Science Mattis Kancans Envall Axel Lewenhaupt 12 april 2013 Abstract Typing is probably always going to be an contemporary topic, with the absolute goal of transferring text between the user and a technical device freely. This report means to examine a typing technique, where user drawn continuous lines on a virtual keyboard get transfered into words, also known as swype. The report concludes that using a fairly simple algorithm combined with a few optimizations, it is possible to implement a swype accurate enough to be considered a realistic alternative to current typing methods on devices with touch screens. Sammanfattning Textinmatning kommer troligtvis alltid vara ett aktuellt ämne, där målet är att användaren skall kunna förmedla text till teknisk apparatur obehindrat. Denna rapport undersöker en textinmatningsmetod där kontinuerliga streck på ett tangentbord översätts till ord, även känt som swype. Rapporten finner att det med en förållandevis enkel algoritm och ett fåtal optimeringar är fullt möjligt implementera ett swype tillräckligt nogrannt för att vara ett realistiskt alternativ till nuvarande inmatningsmetoder för enheter med pekskärm.

2

3 Innehåll 1 Introduktion Syfte, frågeställning och avgränsning Teoretisk bakgrund Definitioner Avsett ord Felmätning Vad är en tydlig kurva? Teknisk bakgrund Datastrukturen Trie Metoder och algoritmer Att spela in en kurva Att hitta en vändpunkt Triealgoritmen Beskrivning Implementerade optimeringar Minimera punktavstånd Minimera omvägar Dubbelteckningar Resultat Minimerade omvägar Minimerade punktavstånd Båda optimeringar Diskussion Svårtydda ord Insamling av testdata Dubbelteckningar Jämförelse optimeringarna emellan Tänkbara optimeringar Bättre dubbelteckningshantering Minskat antal mätpunkter Komprimerade grenar i trie Prestanda Slutsats 12

4 1 Introduktion Förekomsten av så kallade smarta telefoner med pekskärm har ökat markant de senaste åren. Populariteten grundas bland annat i intuitiv interaktion med menyer och stor skärm i förhållande till sitt behändiga fickformat. Men fickformatet kommer till bekostnad av antalet fysiska knappar och detta medför en stor brist för produktkategorin; textinmatning. Alla användningsområden som behöver mer än minimal textinmatning utförs därför hellre på en enhet med ett fysiskt tangentbord, till exempel en bärbar dator[2]. Det finns idag flera alternativ för att underlätta textinmatning[3] på enheter med pekskärm, däribland autokorrigering (eng. autocorrect), taligenkänning och swype. Swype är en textinmatningsteknik där användaren i stället för att skriva varje bokstav enskilt, drar ett sträck som skär varje bokstav i ordet i den ordning de förekommer. Figur 1: Exempel på hur ordet ramp skrivits med swype som textinmatningsmetod. En kurva besöker utan avbrott bokstäverna i ordet i tur och ordning. 1

5 1.1 Syfte, frågeställning och avgränsning Denna rapport syftar undersöka ifall swype realistiskt kan vara en lösning på textinmatningsproblemet hos mobila enheter med pekskärm. Fokus ligger i att presentera ett tänkbart tillvägagångssätt för svepande inmatningar och bedöma dess potential. Vidare ämnas diverse tänkbara optimeringsalternativ diskuteras, samt svagheter hos swype som inmatningsmetod påvisas, för att utreda: Hur träffsäker kan tolkning av enstaka, fristående ord göras med swype som textinmatningsmetod? Eftersom rapporten endast presenterar ett förslag till algoritm samt tänkbara optimeringsalternativ och inte anspråkar att algoritmen är färdigoptimerad, faller det inte inom rapportens omfattning att jämföra algoritmen med andra inmatningsmetoder eller ens andra lösningar för samma inmatningsmetod. 2

6 2 Teoretisk bakgrund 2.1 Definitioner Avsett ord Det avsedda ordet är det ord som användaren haft i åtanke när den svepande gesten utförts. Det avsedda ordet kan i betraktas som ett facit för algoritmen Felmätning Det finns i dagsläget inget consensus för felmätning vid ordigenkänning. Vanligt förekommande är att med någon modell beräkna avståndet mellan det resulterande ordet och det avsedda, för att avgöra hur fel ett identifierat ord är. Exempel på en vanlig sådan modell är Levenshteinavstånd [1]. I denna studie kommer en enklare felmätningsmodell användas, som vi valt att kalla felkvot: felkvoten = ɛ(o 2) ɛ(o 1) 1, om a = 1 ( ɛ(oa) ɛ(o 1) 1 ), annars. där O x är det x:e ordet vår algoritm föreslår som avsett ord och ɛ(o x ) är hur troligt algoritmen finner ordet som ansett, normerat 0 1 där lägre är bättre. a är placeringen som det avsedda ordet fått bland de sorterade orden. Således motsvarar alltså det övre fallet när a = 1, att algoritmen har funnit det avsedda ordet som mest troligt och alltså lyckats. Den observante läsaren inser att felkvoten motsvarar den procentuella skillnaden mellan det avsedda ordet och det bästa icke avsedda ordet. Felkvoten har dessutom gjorts negativ i de fall då algoritmen misslyckats med att identifiera det avsedda ordet, för att tydliggöra detta Vad är en tydlig kurva? En av de viktigaste premisserna för denna studie är att kurvan som analyseras faktiskt syftar till ett ord, eftersom detta tillåter förkastande av otydliga kurvor. En tydlig kurva är en kurva med tydlig begynnelse- och slutpunkt, tydliga vändningar, rimliga avstånd till de bokstäver kurvan antyder samt små omvägar bokstäverna emellan. Antagandet om tydliga kurvor minskar drastiskt värdemängden tänkbara ord och således behöver färre kurvor efterbehandlas. Dessutom behöver inte tydandet av kurvan göras allt för avancerad eftersom t.ex. vändpunkter skall vara skarpa. 3

7 2.2 Teknisk bakgrund Datastrukturen Trie En trie, också känt som prefixträd, är en datastruktur avsedd att lagra elementföljder (ofta text) effektivt med avseende på insättning och uppslagning, samt där gemensamma pre- eller postfix är vanligt förekommande. En Trie är ett grafträd där alla barn med en gemensam förälder har samma prefix. Varje nod i trädet lagrar precis ett element samt ifall det finns en elementföljd som slutar med noden ifråga. Således är det möjligt att finna en lagrad elementföljd genom att lägga ihop alla element noderna i vägen till roten håller. Figur 2: Exempel på en trie med orden mat, matt, man och eld. Bokstäver i en kvadrat representerar alltså förekomsten av ett ord. Triens styrkor är att insättning, uppslagning och borttagning går fort O(m), där m är antalet element i elementföljden som skall lagras och det är mycket lätt att hitta ord med gemensamma prefix. Minneseffektiviteten kan variera kraftigt, beroende på andelen gemensamma prefix.[6] Som exempel skulle lagring av ordet el i figur 2 vara helt gratis, medans ord med begynnelsebokstav skilt från m och e är relativt dyrlagrade. Läsaren bör observera att varje ändnod i trien alltid representerar en lagrad elementsföljd, eller lite slarvigt uttryckt är sann. [6] 4

8 3 Metoder och algoritmer 3.1 Att spela in en kurva En kurva representeras av en följd koordinater med tidsstämpel, som representerar var testpersonen dragit vid given tidpunkt. Dessa samlas i vårt fall in m.h.a. en egenutvecklad android-app och sparas i json-format 1. Telefonen som används har en 110 mm skärmstorlek i diameter och 58,3% av skärmen används som tangentbord. 3.2 Att hitta en vändpunkt Att hitta de punkter där kurvan vänder är användbart av flera anledningar, främst eftersom det kan användas för att identifiera ordet som svepts. En vändning indikerar att den bokstav nåtts som skulle antydas och att kurvan bytt riktning mot nästa bokstav i ordet. Således kan en vändpunkt betyda att en av bokstäverna i närheten skall inkluderas, sannolikt den närmsta. Vändpunkter är även mycket användbara i felsökningssyfte, då de hjälper människor tyda kurvor som exempelvis överlappar mycket och annars lätt uppfattas som plottriga. En vändpunkt kan hittas med linjärsökning: Välj tre punkter med ett givet avstånd sinsemellan, där avståndet avgör hur skarpa vändpunkter som eftersöks. Låt punkterna spänna en triangel och beräkna vinkeln vid den mellersta punkten av de tre, lämpligen med cosinussatsen. Denna vinkel kan nu användas för att identifiera en vändpunkt. Därefter flyttas alla punkterna och processen upprepas tills hela kurvan undersökts. 3.3 Triealgoritmen Beskrivning Algoritmen exekveras i tre steg. Först beräknas värdemängden av tänkbara ord från ordlistan; för varje bokstav inom ett givet avstånd l från kurvans startpunkt påbörjas en vandring från noderna som håller dessa bokstäver i trien. För varje barn till dessa noder, som ju representerar nästkommande bokstav i möjliga ord, undersöks om den återstående delen av kurvan någonstans befinner sig inom avståndet l från bokstaven. Om detta villkor uppfyllts så konsumeras kurvan fram till den nyfunna punkten och så upprepas det sistnämnda steget för nodens barn i trien. Att algoritmen konsumerar kurvan och endast använder den återstående delen ser till att bokstäverna inte inkluderas i omkastad ordning. Som bekant, talar varje nod i trien om ifall ett ord slutar med bokstaven för noden ifråga. Varje gång en sådan nod stöts på i iterationen jämförs den också mot kurvans slut; skulle villkoret uppfyllas är detta en del av värdemängden och således ett möjligt ord. Nästa steg i algoritmen beräknar ett värde för hur troligt det är att kurvan antyder varje ord i värdemängden. Exempelvis kan genomsnittsavståndet till 1 Ett sätt att (de-)serialisera data till text. 5

9 Figur 3: Avståndet till en bokstav beräknas med linjärsökning längs kurvan. Figuren illustrerar en pågående iteration där bokstäverna A och V matchats. Fortsättningsvis kan inga bokstäver hittas på den streckade delen av kurvan och endast bokstäver som kan resultera i ord med AV som prefix i trien kommer att testas. varje bokstav i ordet användas, detta diskuteras ytterligare som optimeringar. Algoritmen avslutas med att sortera dessa värden, och det bästa värdet är då förhoppningsvis det ord som användaren haft i åtanke. 3.4 Implementerade optimeringar Minimera punktavstånd Den enklaste formen av algoritmen kommer att placera varje bokstav för det ord som testas på den första punkt på kurvan där avståndet till punkten underskrider en given konstant. Eftersom det sannolikt finns en punkt på kurvan som är närmre, ger en efterbehandling där dessa punkter flyttas närmre de bokstäver de associerats till bättre precision Minimera omvägar Om algoritmen endast skulle ta hänsyn till huruvida bokstäverna i ett ord besöks i rätt ordning, samt hur nära kurvan kommer dessa bokstäver, kommer den förbise ett par viktiga egenskaper som skiljer ett ord från ett annat. Genom att straffa ord som placerar två bokstäver med onödig omväg emellan, kan kurvor som uppenbarligen antyder ytterligare en bokstav emellan de två bokstäverna i fråga premieras. Figur 3 antyder exempelvis en bokstav mellan A:en och V :et, eftersom användaren annars hade valt den kortare vägen mellan bokstäverna. Genom att beräkna den genomsnittliga omvägen mellan varje inkluderat bokstavspar, dvs. för kvoten mellan längden av kurvans väg och fågelvägen, de närliggande bokstäverna emellan, kan ett straffvärde för ordet beräknas och vägas in i slutbedömningen av ordet. 3.5 Dubbelteckningar Ett enkelt sätt att hantera dubbelteckningar är att helt enkelt placera den andra bokstaven i varje dubbelteckning på samma punkt i kurvan som den tidigare, för varje förekomst av dubbelteckning vid iteration över trien. 6

10 4 Resultat Samtliga test har utförts på en ordlista 2 med svenska ord. Femton personer har kontribuerat med totalt 390 textinmatningar. Felaktiga inmatningar har i enlighet med försökets premiss om korrekt indata (se Vad är en tydlig kurva? sida 3) exkluderats. Detta involverar testdata där användaren uppenbarligen har skrivit fel, t.ex. där kurvan uppenbarligen missat en eller flera bokstäver eller skär bokstäverna i fel ordning. Totalt Korrekta Fel % Top 4 Top 4 (%) Minsta punktavstånd Minimala omvägar Båda Tabell 1: Optimeringseffekterna i siffror. Ovan syns att minimering av omvägar är den enskilt bästa optimeringen för att finna det avsedda ordet, men också att skillnaden är mindre optimeringarna emellan ifall de avsedda ordet tillåts återfinnas bland de fyra mest troliga orden. Diagrammen som följer har har beskurits till ± 300 % eftersom de främst ämnar ge läsaren en uppfattning om testresultaten i stort och storleken för enskilda testfall med anormala värden har sekundärt intresse. Varje stapel motsvarar ett ord. Testfallen har delats in i två kategorier, beroende på ifall algoritmen lyckats identifiera det avsedda ordet eller ej, för att illustrera förhållandet mellan antalet testfall där algoritmen lyckats respektive misslyckats. Kategoriernas har inte sorterats inbördes. Tidsåtgång totalt: Tidsåtgång i genomsnitt: 2942ms 7.54ms Tabell 2: Tiden det tar i testet med 390 ord och alla optimeringar påslagna. Tested kördes på en Core2 Quad CPU Q9550 med endast en tråd. 2 Den Stora Svenska Ordlistan: swedish-spelling-dictionary-den-stora-svenska-ordlistan 7

11 4.1 Minimerade omvägar Figur 4: Skillnaden mellan fågelvägen och kurvsträckan. Antal korrekta: 270 av 390. I figur 4 ser man lätt att genom att endast vikta felkvoten på hur lång omväg kurvsträckan är i jämförelse med fågelavståndet mellan bokstäverna kan man få en bra viktning. Det är också värt att poängtera att bara för att en stapel är negativ måste inte det rätta ordet fått ett dåligt värde, utan endast att något annat ord har fått ett bättre värde. 8

12 4.2 Minimerade punktavstånd Figur 5: Resultatet med minimerade punktavstånd som enda optimering. Antal korrekta: 144 av 390. Att endast använda viktning i avseende på avståndet mellan bokstäverna och kurvan ger inget entydigt svar på vilket ord som användaren försökte skriva, vilket går att se i figur 5. Trots den stora andelen av ord där det rätta ordet inte hade bäst viktning ser man i tabell 1 att ordet användaren försökte skriva finns med bland de fyra första orden i 73% av fallen. 9

13 4.3 Båda optimeringar Figur 6: Båda optimeringarna. Antal korrekta: 333 av 390. När båda viktningarna kombinaras fås ett resultat där de flesta svepningarna resulterade i att rätt ord fick bäst viktning, vilket kan ses i figur 6. Ifall man även ser på tabell 1 ser man att i över 95% av fallen finns det rätta ordet med bland de 4 översta resultaten. 10

14 5 Diskussion 5.1 Svårtydda ord En klar nackdel men swype som inmatningsmetod är att vissa ord kan bli mycket svåra att urskilja. För att urskilja vilket ord som avsetts skulle mycket subtila positioner där användaren börjar vända kunna avslöja Figur 7: Exempel på ett ord som är väldigt svårt att tyda. Står det kota, kora eller möjligen korsa? Insamling av testdata Vid insamlandet av våra testdata användes en telefon med förhållandevis stor skärm och en betydande del av den skärm användes till just textinmatningen. Vid kommersiellt användande skulle troligen inte så stor skärmyta undvaras tangentbordet, vilket tyder på att om algoritmen användes på en telefon med mindre skärmyta är träffsäkerheten sannolikt inte är tillräcklig för att algoritmen skulle kunna användas rakt av Dubbelteckningar Dubbelteckningar är vanligt förekommande i det svenska språket, varför vi kände oss tvungna att hantera dem på något sätt. Lösningen med att helt enkelt slå samman dubbeltecknade bokstäver är uppenbarligen inte optimal, eftersom den inte egentligen gör någon skillnad på exempelvis mata och matta, vilket bör hållas i åtanke när våra resultat tolkas; i de fall när en dubbelteckning förekommer och dubbelteckningen är det enda som skiljer från ett annat, är det i vår algoritm odefinierat vilket ord som kommer först. Detta diskuteras vidare under Tänkbara optimeringar. 5.2 Jämförelse optimeringarna emellan I beskrivningen till tabell 1 uppmärksammas att skillnaden mellan optimeringarna är större i kolumnen för antalet korrekta än i kolumnen för top 4. Detta är troligen ett resultat av att optimeringen för minsta punktavståndet inte lägger vikt vid kurvans längd. 11

15 5.3 Tänkbara optimeringar Bättre dubbelteckningshantering Det finns flera lösningar på hur dubbelteckningar kan hanteras, en av de vanligast kommersiellt förekommande är att klottra eller göra en liten loop på bokstaven som skall dubbeltecknas[5]. Ytterligare en lösning är att helt enkelt hålla fingret stilla en kort stund på bokstaven innan resten av kurvan skrivs. Detta skulle absolut kunna implementeras som påbyggnad till vår algoritm, och skulle ge algoritmen en chans att klara de testfall där två ord endast skiljs av en dubbelteckning Minskat antal mätpunkter I våra tester varierar antalet förekommande mätpunkter per svept längdenhet ganska stort, framförallt beroende på hur fort testpersonen sveper. Eftersom både huvudalgoritmen och optimeringar itererar över testpunkterna har dessa förhållandevis stor inverkan på prestandan. Ifall punkterna sitter för tätt tillför varje punkt inte så mycket ny information, varför hårdvaran skulle kunna filtrera antalet mätpunkter och kunna påverka prestandan med en betydande faktor Komprimerade grenar i trie Andra implementationer av trie kan komprimera grenar där det fortsättingsvis endast existerar en väg. Detta spara utrymme och kan beroende på implementation även minska det nödvändiga antalet iterationer något. Denna optimering görs till en kostand av högre implementationskomplexitet och långsammare insättningar, men det senare behöver inte påverka triealgoritmen eftersom den ser trien som konstant och troligen kommer ha den förberäknad. Det finns också implementationer som låter varje kjedja utmynna i ett binärträd för att minska minnesanvändningen. [6] 5.4 Prestanda Trots att inga optimeringar gjorts med avseende på prestanda är algoritmen snabb. Ett ord tolkas på en dator i genomsnitt på ca 8ms. Även om algoritmen skulle köras på en långsam mobiltelefon, med en faktor upp emot 50 i exekveringstid, skulle fortfarande algoritmen klara de riktlinjer för vad människor uppfattar som responsivt med god marginal[4]. Detta betyder främst att det finns gott om utrymme för fler optimeringar eller att ta hänsyn till användarfel i större utsträckning. 6 Slutsats Trots triealgoritmens enkelhet kan den med endast två rättframma optimeringar och producera förvånansvärt goda resultat. Med god prestandamarginal, potential för fler optimeringar och hantering av specialfall, skulle triealgoritmen som 12

16 föreslås i denna rapport sannolikt kunna vidareutvecklas till en väl fungerande textinmatningsapplikation. Referenser [1] Levenshtein distance. Levenshtein.html, (Hämtad 12 April 2013). [2] United states patent us com/ pdf. [3] Per Ola Kristensson. Discrete and continuous shape writing for text entry and control /FULLTEXT01. [4] Robert B. Miller. Response time in man-computer conversational transactions [5] Inc. Nuance Communications. Swype basics. tips/swype-basics/. (Hämtad 12 April 2013). [6] Hugh E. Williams Steffen Heinz, Justin Zobel. Burst Tries: A Fast, Efficient Data Structure for String Keys. acmtois02.pdf. 13

Texinmatning med Swype

Texinmatning med Swype Texinmatning med Swype Kandidatexamensarbete i datateknik DD143X dkand13 MATTIS KANCANS ENVALL MATTISKE@KTH.SE AXEL LEWENHAUPT AXELLEW@KTH.SE Handledare: Anders Askenfelt Stockholm, 2013-04-12 Abstract

Läs mer

Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED

Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED Sammanfattning Styrdon Tangentbord och textinmatning Pekdon Fitts lag GOMS-KLM Styrdon Tangentbord Pekdon Tangentbord QWERTY-layout QWERTY-layout

Läs mer

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning Talstyrning Abstrakt Talstyrning är en teknik som gör det möjligt för oss människor att mer eller mindre verbalt kommunicera med en dator eller ett system. Det här är ett tillvägagångssätt inom AI och

Läs mer

Optimering av depåpositioner för den minimala bensinförbrukningen i öknen

Optimering av depåpositioner för den minimala bensinförbrukningen i öknen Optimering av depåpositioner för den minimala bensinförbrukningen i öknen Frågeställning: En jeep kan sammanlagt ha 200 liter bensin i tanken samt i lösa dunkar. Jeepen kommer 2,5 km på 1 liter bensin.

Läs mer

Om ellipsen och hyperbelns optiska egenskaper

Om ellipsen och hyperbelns optiska egenskaper Om ellipsen och hyperbelns optiska egenskaper Anders Källén MatematikCentrum LTH anderskallen@gmail.com Sammanfattning Ellipser och hyperbler är, liksom parabeln, s.k. kägelsnitt, dvs kurvor som uppkommer

Läs mer

Datastrukturer och Algoritmer D0041D

Datastrukturer och Algoritmer D0041D Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms

Läs mer

Innehåll. Styrdon (ej i boken) Fitts lag (sidan ) Natural user interfaces. Kap 6.2.9, , Kap

Innehåll. Styrdon (ej i boken) Fitts lag (sidan ) Natural user interfaces. Kap 6.2.9, , Kap Interaktion 2 Innehåll Styrdon (ej i boken) Fitts lag (sidan 527-528) Natural user interfaces Kap 6.2.9, 6.2.11, 6.2.12 Kap 6.3-6.4 Styrdon Styrdon Tangentbord Pekdon Tangentbord QWERTY-layout QWERTY-layout

Läs mer

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Jacek Malec Datavetenskap, LU 11 april 2003 Datum 11 april 2003 Tid 14 19 Ansvarig lärare Jacek Malec (tel. 03 9890431) Hjälpmedel inga Antal

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca System vi undersökte Den system vi valde att undersöka var en av de senaste smart tv som finns i markanden och var nämnd till bästa

Läs mer

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning TANA18/20 mars 2015 LAB 3. INTERPOLATION 1 Inledning Vi ska studera problemet att interpolera givna data med ett polynom och att interpolera med kubiska splinefunktioner, s(x), som är styckvisa polynom.

Läs mer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod. Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar

Läs mer

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm Grafalgoritmer 1 Douglas Wikström KTH Stockholm popup-help@csc.kth.se Oriktade och riktade grafer Definition. En oriktad graf består av en mängd noder V och en mängd kanter E, där en kant är ett oordnat

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Värmedistribution i plåt

Värmedistribution i plåt Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.

Läs mer

MANUAL SENTAX AB.

MANUAL SENTAX AB. MANUAL SENTAX AB www.sentax.se Innehåll Sentax Glide... 2 Hemsida och Mobilapplikation... 2 Förbereda test (Mobilenhet)... 7 Förbereda test (Skidspår)... 10 Utföra test... 11 Testdagboken... 17 Batteri...

Läs mer

Lösningar och kommentarer till uppgifter i 1.1

Lösningar och kommentarer till uppgifter i 1.1 Lösningar och kommentarer till uppgifter i 1.1 1106 d) 1107 d) 5t(t t 1) t (t 3) + t 3 5t 3 10t 5t (t 3 3t ) + t 3 5t 3 10t 5t t 3 + 3t + t 3 6t 3 7t 5t Kommentarer: Starta med att multiplicera in faktorerna

Läs mer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Några svar till TDDC70/91 Datastrukturer och algoritmer

Några svar till TDDC70/91 Datastrukturer och algoritmer Några svar till TDDC70/91 Datastrukturer och algoritmer 2011--18 Följande är lösningsskisser och svar till uppgifterna på tentan. Lösningarna som ges här ska bara ses som vägledning och är oftast inte

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering

Läs mer

Mälardalens högskola

Mälardalens högskola Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del

Läs mer

Sju riktlinjer vid utveckling av hemsidor för mobil och desktop

Sju riktlinjer vid utveckling av hemsidor för mobil och desktop Sju riktlinjer vid utveckling av hemsidor för mobil och desktop Denna artikel går igenom hur du gör en hemsida användarvänlig till både vanliga desktopdatorer och mobilanvändare utan att behöva ha två

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Föreläsning 13. Träd

Föreläsning 13. Träd Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Tentamen i TDP004 Objektorienterad Programmering Praktisk del Tentamen i TDP004 Objektorienterad Programmering Praktisk del Datum: 2010-04-07 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Sidor i boken 40-4 Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Läxa 1. En rät linje, L 1, skär y-axeln

Läs mer

Algoritmer och datastrukturer 2012, fo rela sning 8

Algoritmer och datastrukturer 2012, fo rela sning 8 lgoritmer och datastrukturer 01, fo rela sning 8 Komplexitet för binära sökträd De viktigaste operationerna på binära sökträd är insert, find och remove Tiden det tar att utföra en operation bestäms till

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1) Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal

Läs mer

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall COMPUTABILITY BERÄKNINGSBARHET Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall Den centrala frågan: givet ett problem, kan det ha en algoritmisk lösning?

Läs mer

Energieffektiv GUI design

Energieffektiv GUI design Energieffektiv GUI design Andreas Långberg, h08anlan Energieffektiv GUI design för mobiltelefoner Skärmen är den största energiboven i en telefon och genom att designa GUIet rätt så kan man reducera skärmens

Läs mer

Träd och koder. Anders Björner KTH

Träd och koder. Anders Björner KTH 27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som

Läs mer

Ett enkelt OCR-system

Ett enkelt OCR-system P r o j e k t i B i l d a n a l y s Ett enkelt OCR-system av Anders Fredriksson F98 Fredrik Rosqvist F98 Handledare: Magnus Oskarsson Lunds Tekniska Högskola 2001-11-29 - Sida 1 - 1.Inledning Många människor

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen

Läs mer

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Lösningsförslag för tentamen i Datastrukturer (DAT037) från Lösningsförslag för tentamen i Datastrukturer (DAT7) från --9 Nils Anders Danielsson. Träd- och köoperationerna har alla tidskomplexiteten O(log s), där s är antalet element i trädet/kön (notera att jämförelser

Läs mer

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09 Vätebränsle Namn: Rasmus Rynell Klass: TE14A Datum: 2015-03-09 Abstract This report is about Hydrogen as the future fuel. I chose this topic because I think that it s really interesting to look in to the

Läs mer

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

Läs mer

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter TATM79: Föreläsning Absolutbelopp, summor och binomialkoefficienter Johan Thim 15 augusti 015 1 Absolutbelopp Absolutbelopp Definition. För varje reellt x definieras absolutbeloppet x enligt { x, x 0 x

Läs mer

Föreläsning 11: Beräkningsgeometri

Föreläsning 11: Beräkningsgeometri DD2458, Problemlösning och programmering under press Föreläsning 11: Beräkningsgeometri Datum: 2009-11-24 Skribenter: David Björklund, Christoer Lundell Johansson och Mårten Selin Föreläsare: Fredrik Niemelä

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

Läs mer

Hantering av högkostnadsskyddet för tandläkarvård i KPI

Hantering av högkostnadsskyddet för tandläkarvård i KPI ES/PR Henrik Björk PM till Nämnden för KPI 2015-05-18 1(6) Hantering av högkostnadsskyddet för tandläkarvård i KPI För beslut Prisenheten föreslår en förbättring av prismätningen av tandvård i konsumentprisindex.

Läs mer

Magnus Nielsen, IDA, Linköpings universitet

Magnus Nielsen, IDA, Linköpings universitet Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1

Läs mer

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk

Läs mer

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp

Läs mer

Jeep-problemet. Kjell Elfström

Jeep-problemet. Kjell Elfström F r å g a L u n d o m m a t e m a t i k Matematikcentrum Matematik NF Jeep-problemet Kjell Elfström Problemet En jeep kan sammanlagt ta 200 liter bensin i tanken och i lösa dunkar. Jeepen kan gå 2,5 km

Läs mer

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll Mike McBride Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Fönsterbeteende 4 1.1 Fokus............................................. 4 1.1.1 Fokuspolicy..................................... 4

Läs mer

1 Kravspecifikation Snake App

1 Kravspecifikation Snake App Kravspecifikation Snake App - Kravspecifikation Snake App Utskriven/PDF Export: 2011-09-07 Copyright 2011 Sidan 1 av 7 1 Kravspecifikation Snake App 1.1 Vad är Snake App? Vi skall gör ett Snake Spel för

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-27 Idag Balanserade sökträd Splayträd Skipplistor AVL-träd AVL-träd Sökträd Invariant (för varje nod): Vänster och höger delträd har samma

Läs mer

Matematikuppgifter del II, FYTA11

Matematikuppgifter del II, FYTA11 Matematikuppgifter del II, FYTA11 51. Lös uppgift 10.1 i boken. 52. Lös uppgift 10.2 i boken. 53. Lös uppgift 10.3 i boken. 54. Lös uppgift 10.4 i boken. 55. Låt en kurva i rummet vara given i parametrisk

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 5 Algoritmer & Analys av Algoritmer Algoritmer Vad är det? Innehåll Mer formellt om algoritmer beräkningsbarhet Att beskriva algoritmer Analysera algoritmer Exekveringstid,

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Kvalificeringstävling den 30 september 2008

Kvalificeringstävling den 30 september 2008 SKOLORNAS MATEMATIKTÄVLING Svenska Matematikersamfundet Kvalificeringstävling den 30 september 2008 Förslag till lösningar Problem 1 Tre rader med tal är skrivna på ett papper Varje rad innehåller tre

Läs mer

For more information please visit www.rollermouse.com

For more information please visit www.rollermouse.com For more information please visit www.rollermouse.com Contour Design, Inc. 10 Industrial Drive Windham New Hampshire, 03087, USA Phone: 800-462-6678 E-mail: ergoinfo@contourdesign.com Contour Design Europe

Läs mer

Programmeringsolympiaden 2010 Kvalificering

Programmeringsolympiaden 2010 Kvalificering Programmeringsolympiaden 2010 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2015-03-17 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

TDIU01 / 725G

TDIU01 / 725G TDIU01 / 725G67 2011-12-16 08-13 Inloggning Börja med att logga in i tentasystemet genom att logga in med användare examx som har lösenordet kluring1. Verifiera att dina uppgifter stämmer och förbered

Läs mer

Upprepade mönster (fortsättning från del 1)

Upprepade mönster (fortsättning från del 1) Modul: Algebra Del 2: Resonemangsförmåga Upprepade mönster (fortsättning från del 1) Anna-Lena Ekdahl och Robert Gunnarsson, Högskolan i Jönköping Ett viktigt syfte med att arbeta med upprepade mönster

Läs mer

Samtidig utvärdering av form- & lägekrav

Samtidig utvärdering av form- & lägekrav Samtidig utvärdering av form- & lägekrav Allmän information Samtidig utvärdering (ISO) eller samtidiga krav (ASME) är väletablerade principer som gäller för form- & lägetoleranser. Samtidig utvärdering

Läs mer

Extramaterial till Matematik X

Extramaterial till Matematik X LIBER PROGRMMERING OCH DIGITL KOMPETENS Extramaterial till Matematik X NIVÅ TRE Programmering LÄRRE I den här uppgiften får du och dina elever en introduktion till programmering. Uppgiften vänder sig först

Läs mer

LKT325/LMA521: Faktorförsök

LKT325/LMA521: Faktorförsök Föreläsning 2 Innehåll Referensfördelning Referensintervall Skatta variansen 1 Flera mätningar i varje grupp. 2 Antag att vissa eekter inte existerar 3 Normalfördelningspapper Referensfördelning Hittills

Läs mer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.

Läs mer

Programmera Kontaktlåda USB i Android

Programmera Kontaktlåda USB i Android Programmera Kontaktlåda USB i Android Med programvaran för Android kan du göra så att ett tryck på din kontakt ger dig: klick och svep över skärmen multimediakommandon musrörelser och musklick spelkommandon

Läs mer

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter Johan Thim 2 augusti 2016 1 Absolutbelopp Absolutbelopp Definition. För varje reellt x definieras absolutbeloppet x enligt { x, x 0

Läs mer

Vektorgeometri för gymnasister

Vektorgeometri för gymnasister Vektorgeometri för gymnasister Per-Anders Svensson http://homepage.lnu.se/staff/psvmsi/vektorgeometri/gymnasiet.html Fakulteten för teknik Linnéuniversitetet Räta linjens och planets ekvationer III Innehåll

Läs mer

17 Trigonometri. triangeln är 20 cm. Bestäm vinkeln mellan dessa sidor. Lösning: Här är det dags för areasatsen. s1 s2 sin v 2

17 Trigonometri. triangeln är 20 cm. Bestäm vinkeln mellan dessa sidor. Lösning: Här är det dags för areasatsen. s1 s2 sin v 2 17 Trigonometri Övning 17.1 En likbent triangel har arean 10 cm. De båda lika långa sidorna i triangeln är 0 cm. estäm vinkeln mellan dessa sidor. Här är det dags för areasatsen = s1 s sin v där v ligger

Läs mer

TDDI16 Datastrukturer och algoritmer. Algoritmanalys

TDDI16 Datastrukturer och algoritmer. Algoritmanalys TDDI16 Datastrukturer och algoritmer Algoritmanalys 2017-08-28 2 Översikt Skäl för att analysera algoritmer Olika fall att tänka på Medelfall Bästa Värsta Metoder för analys 2017-08-28 3 Skäl till att

Läs mer

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,

Läs mer

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning En rapport från CATD-projektet, januari-2001 1 2 Förstudie Beslutsstöd för operativ tågtrafikstyrning Bakgrund Bland de grundläggande

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b? Euklides algoritm för största gemensamma delaren Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b? Euklides har kommit på en metod (algoritm)

Läs mer

LÄSLANDET - BOKSTÄVER OCH ORD

LÄSLANDET - BOKSTÄVER OCH ORD LÄSLANDET - BOKSTÄVER OCH ORD Programmet består av 21 övningar som övar förmågan att känna igen bokstäver och ord. Här tränas såväl läsning som stavning och bokstavsordning. Du får hela tiden stöd av inspelat

Läs mer

Fredag 10 juni 2016 kl 8 12

Fredag 10 juni 2016 kl 8 12 KTH CSC, Alexander Baltatzis DD1320/1321 Lösningsförslag Fredag 10 juni 2016 kl 8 12 Hjälpmedel: En algoritmbok (ej pythonkramaren) och ditt eget formelblad. För betyg E krävs att alla E-uppgifter är godkända,

Läs mer

Matematiska uppgifter

Matematiska uppgifter Elementa Första häftet 3220. Bestäm alla reella tal x för vilka 3 x x + 2. 322. Pelles och Palles sammanlagda ålder är 66 år. Pelle är dubbelt så gammal som Palle var när Pelle var hälften så gammal som

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2 Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1

Läs mer

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt. 1 Samlingar 1.1 Frekvenstabell En Integer är icke-muterbar (precis som String, Float, Boolean et.c.). Ickemuterbarhet har många fördelar, men en nackdel är att ett helt nytt objekt måste skapas när ett

Läs mer

Programmeringsolympiaden 2018

Programmeringsolympiaden 2018 Programmeringsolympiaden 2018 TÄVLINGSREGLER FÖR SKOLKVALET Tävlingen äger rum på av skolan bestämt datum under fyra timmar. Ingen förlängning ges för lunch eller raster. Eleven ska i förväg komma överens

Läs mer

BIOSTATISTISK GRUNDKURS, MASB11 ÖVNING 6 (2015-04-22) OCH INFÖR ÖVNING 7 (2015-04-29)

BIOSTATISTISK GRUNDKURS, MASB11 ÖVNING 6 (2015-04-22) OCH INFÖR ÖVNING 7 (2015-04-29) LUNDS UNIVERSITET, MATEMATIKCENTRUM, MATEMATISK STATISTIK BIOSTATISTISK GRUNDKURS, MASB11 ÖVNING 6 (2015-04-22) OCH INFÖR ÖVNING 7 (2015-04-29) Aktuella avsnitt i boken: Kap 61 65 Lektionens mål: Du ska

Läs mer

y º A B C sin 32 = 5.3 x = sin 32 x tan 32 = 5.3 y = tan 32

y º A B C sin 32 = 5.3 x = sin 32 x tan 32 = 5.3 y = tan 32 6 Trigonometri 6. Dagens Teori Vi startar med att repetera lite av det som ingått i tidigare kurser angående trigonometri. Här följer en och samma rätvinkliga triangel tre gånger. Med en sida och en vinkel

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 12 Anton Grensjö grensjo@csc.kth.se 10 december 2015 Anton Grensjö ADK Övning 12 10 december 2015 1 / 19 Idag Idag Komplexitetsklasser Blandade uppgifter

Läs mer

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp MAA7 Derivatan 2. Funktionens egenskaper 2.1 Repetition av grundbegerepp - Det finns vissa begrepp som återkommer i nästan alla kurser i matematik. Några av dessa är definitionsmängd, värdemängd, största

Läs mer

Programmeringsolympiaden 2012 Kvalificering

Programmeringsolympiaden 2012 Kvalificering Programmeringsolympiaden 2012 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom

Läs mer

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt

Linjärt minne. Sammanhängande minne är ej flexibelt. Effektivt Binära träd (forts) Ett binärt träd kan lagras i ett enda sammanhängande minne Roten har index 1 Vänster barn till nod i har index 2*i Höger barn till nod i har index 2*i + 1 Föräldern till nod i har index

Läs mer

Ontech Control för Android Användarmanual Svenska

Ontech Control för Android Användarmanual Svenska Ontech Control för Android Användarmanual Svenska Inställningar Innan du använder denna app första gången så måste du ställa in den. Meny knapp Tryck på Meny knappen på startsidan och sedan Settings. Välj

Läs mer

Kapitel 4. cos(64 )= s s = 9 cos(64 )= 3.9m. cos(78 )= s s = 9 cos(78 )= 1.9m. a) tan(34 )= x x = 35 tan(34 )= 24cm

Kapitel 4. cos(64 )= s s = 9 cos(64 )= 3.9m. cos(78 )= s s = 9 cos(78 )= 1.9m. a) tan(34 )= x x = 35 tan(34 )= 24cm Kapitel 4 4107 4103 a) tan(34 )= x x = 35 tan(34 )= 4cm 35 b) cos(40 )= x x = 61 cos(40 )= 47cm 61 c) tan(56 )= 43 x x = 43 tan(56 ) = 9cm d) sin(53 )= x x = 75 sin(53 )= 60cm 75 4104 a) tan(v )= 7 4 v

Läs mer

MANUAL SENTAX AB.

MANUAL SENTAX AB. MANUAL SENTAX AB www.sentax.se Innehåll Sentax Glide... 2 Hemsida och Mobilapplikation... 2 Förbereda test (Mobilenhet)... 5 Förbereda test (Skidspår)... 8 Utföra test... 8 Testdagboken... 14 SENTAX AB

Läs mer

Sidor i boken Figur 1: Sträckor

Sidor i boken Figur 1: Sträckor Sidor i boken 37-39 Vektorer Det vi ska studera här är bara en liten del av den teori du kommer att stifta bekantskap med i dina fortsatta studier i kursen Linjär algebra. Många av de objekt man arbetar

Läs mer