Periodiska decimalbråk

Relevanta dokument
Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Några saker till och lite om snabbare sortering

Pascal... Pascal. Pascal... Pascal...

GOTO och lägen. Några saker till och lite om snabbare sortering. GOTO och lägen (3) GOTO och lägen (2)

2-8: Bråk, förkortning. Namn:.. Inledning

Summan av två heltalskvadrater

Funktioner, Procedurer och Parametrar. Funktioner, Procedurer och Parametrar... Funktioner, Procedurer och Parametrar procedurspecifikation

Tentamen består av 26 uppgifter fördelade på fem olika ämnesområden. Del 2 5 ger maximalt 11 poäng/del.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

0, 1, 2, 3,...,9, 10, 11,... I, II, III, IV, V, VI,...

2-9: Bråktal: gemensam nämnare

DD1361 Programmeringsparadigm. Carina Edlund

Installera Anaconda Python

DOP-matematik Copyright Tord Persson Övning Bråkräkning. Matematik 1. Uppgift nr 14 Addera 9. Uppgift nr 15 Addera 3. Uppgift nr 16 Subtrahera

Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

JavaScript del 3 If, Operatorer och Confirm

Algebra och rationella uttryck

8F Ma: Aritmetik och bråkbegreppet

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

En kort text om programmering i C.

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Datalogi, grundkurs 1. Lösningsförslag till tentamen

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Datalogi, grundkurs 1. Lösningsförslag till tentamen

3-3 Skriftliga räknemetoder

Uppgift 1 (grundläggande konstruktioner)

Repetitionsuppgifter inför Matematik 1. Matematiska institutionen Linköpings universitet 2013

Lite om räkning med rationella uttryck, 23/10

9F Ma: Aritmetik och bråkbegreppet

Mattekollen. Mattekollen 1. Mattekollen 3. Mattekollen 2. 6 Mål för kapitlet. 156 mattekollen. För att avsluta kapitlet

Tema: Pythagoras sats. Linnéa Utterström & Malin Öberg

1 Iteration. 1.1 for-satsen

MA 11. Hur starkt de binder. 2 Reella tal 3 Slutledning 4 Logik 5 Mängdlära 6-7 Talteori 8 Diofantiska ekvationer 9 Fördjupning och kryptografi

Typsystem. Typsystem... Typsystem... Typsystem... 2 *

Kontinuerliga listor. Fält (listor) Kontinuerliga listor... Kontinuerliga listor...

F4. programmeringsteknik och Matlab

TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010

Imperativ programmering. Föreläsning 2

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

DOP-matematik Copyright Tord Persson. Potensform. Uppgift nr 10. Uppgift nr 11 Visa varför kan skrivas = 4 7

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Minsta gemensamma nämnare vad är det?

Matematikens Element. Vad är matematik. Är detta matematik? Anders Fällström Institutionen för matematik och matematisk statistik Umeå universitet

EXTRA UPPGIFTER I C++ PROGRAMMERING-A

Block 1 - Mängder och tal

Kapitel 2: De hela talen

Delbarhet och primtal

Ma Åk7-Conor: Aritmetik och bråkbegreppet

Logik och kontrollstrukturer

Matematiska uppgifter

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 10. Pekare (Pointers)

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

DOP-matematik Copyright Tord Persson Potenser. Matematik 1A. Uppgift nr 10 Multiplicera

Data, typ, selektion, iteration

Om datorns användning matematikundervisningen

Repetitionsuppgifter inför Matematik 1-973G10. Matematiska institutionen Linköpings universitet 2014

Uppgift 1 (vadå sortering?)

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);

Planering Programmering grundkurs HI1024 HT TIDAA

Datorteknik 2 (AVR 2)

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Planering Programmering grundkurs HI1024 HT data

Ur kursplanen för ämnet matematik I detta arbetsområde ska eleven utveckla sin förmåga att:

729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer

Funktioner och programstruktur. Föreläsning 5

Lektion 1. Förenklingar. Valentina Chapovalova. vårterminen IT-Gymnasiet. Valentina Chapovalova Lektion 1

Digital elektronik CL0090

Visual Basic, en snabbgenomgång

Hela tal LCB 1999/2000

2-1: Taltyper och tallinjen Namn:.

Polynomanpassningsprogram

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Quadratic Sieve. Avancerade algoritmer (2D1440) 8/ Joel Brynielsson, TCS/Nada (f.d. D95)

1Mer om tal. Mål. Grunddel K 1

Geometri. Geometriska objekt och dess egenskaper: polygoner, cirklar, klot, koner, cylindrar, pyramider och rätblock

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Standardfilerna Input och Output

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Standardfilerna Input och Output. Filer... Filer... vanlig utbyggnad för ökad dynamik. Filer... filtyper

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Några svar till TDDC70/91 Datastrukturer och algoritmer

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Introduktion till Jasmine 1.2 ODQL

Texten är en omarbetning av en text skriven av Rikard Bögvad för kursen Matematik I (30 hp).

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Block 1 - Mängder och tal

TALSYSTEMET. Syfte Lgr 11

Hur man skriver matematik

SCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall

Algoritmer, datastrukturer och komplexitet

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Transkript:

300 Periodiska decimalbråk Hans Riesel K T H Inledning. Du har säkert lagt märke till att decimalerna i vissa enkla tal såsom 1/3 = 0.333... eller 1/11 = 0.0909..., består av en upprepning av en ständigt återkommande följd av samma siffror. Sådana tal kallas periodiska decimalbråk. Det visar sig, att varje rationellt tal p/q, förvandlat till decimalbråk, ger antingen ett avslutat decimalbråk (såsom 5/8 = 0.625), ett rent periodiskt decimalbråk (såsom 1/37 = 0.027027... ) eller ett orent periodiskt decimalbråk (såsom 1/6 = 0.1666... ), där perioden föregås av en eller flera siffror, som bildar den s.k. aperiodiska delen. Uppgiften. Du skall med hjälp av nedanstående datorprogram försöka komma underfund med lagarna efter vilka de olika fallen uppträder. Program Perdec(input,output); Label 1; Var p,q,t,i,j,s : integer; rester : array[0..2000] of integer; Begin write( Ge q för ber. av p/q: ); read(q); writeln; for p:=1 to q-1 do begin write(p:1, /,q:1, =0. ); for j:=0 to q do rester[j] :=-1; t:=p; rester[p] :=0; for i:=1 to q do begin t:=10*t; s:=t Div q; t:=t Mod q; if rester[t] =-1 then

Periodiska decimalbråk 301 är ); end; begin write(s:1); rester[t] :=i; end else begin if t=p then begin writeln(s:1,... ); writeln( Rent periodiskt decimalbråk.antalsiffror=,i:1); goto 1 end; if t=0 then begin writeln; writeln( Avslutat decimalbråk! ); goto 1 end; writeln(s:1,... ); write( Orent periodiskt bråk. Aperiodiska delen har ); write(rester[t] :1, siffr ); if (rester[t] )>1 then write( or ) else write( a ); write(. Periodlängden writeln(i-rester[t] :1); goto 1 end 1: writeln; end end. Programmet gör följande: Efter inmatning av nämnaren q beräknas decimalbråksutvecklingarna för alla tal p/q, där 1 p q 1. Dessa utvecklingar skrivs ut, jämte en karakterisering av utvecklingens typ. Mata in programmet och kör det för q = 6 och verifiera att Du får

302 Hans Riesel 1/6 = 0.1666..., orent periodiskt 2/6 = 1/3 = 0.3333..., rent periodiskt 3/6 = 1/2 = 0.5, avslutat 4/6 = 2/3 = 0.6666..., rent periodiskt 5/6 = 0.8333..., orent periodiskt. Vilka tal p/q ger avslutade decimalbråk? Vilka tal ger orena, periodiska decimalbråk? Rena, periodiska decimalbråk. Du kan använda datorprogrammet till att undersöka de rena periodiska decimalbråken. Försök att svara på följande frågor: 1. Antag att nämnaren q inte innehåller några faktorer 2 eller 5. Antag vidare att täljaren p inte har några faktorer gemensamma med q, så att bråket p/q alltså inte kan förkortas. Jämför periodlängderna för de olika bråken p/q, då 1 p q 1. Vad finner Du för resultat? 2. I vissa fall är perioden för 1/q ovanligt lång, q 1 siffror. Kan Du karakterisera de q-värden som ger denna maximala periodlängd? 3. För de fall att 1/q har maximal periodlängd enligt punkt 2 ovan, står de olika perioderna som fås för alla talen p/q i en enkel relation till varandra. Hur? 4. Det finns något som i förströelsematematiken brukar kallas cykliska tal. Ett sådant är 142857. Ett sådant tals egenskaper visas enklast med följande uppställning:

Periodiska decimalbråk 303 1 142857 = 142857 2 142857 = 285714 3 142857 = 428571 4 142857 = 571428 5 142857 = 714285 6 142857 = 857142 7 142857 = 999999 En (liten multiplikator) (ett cykliskt tal) ger alltså ett resultat, som är det cykliska talet med någon eller några siffror flyttade från början till slutet av talet. Försök att känna igen det cykliska talet 142857. Kan Du förklara talets egenskaper mot bakgrund av periodiska decimalbråksutvecklingar? Var kommer nästa cykliska tal, ifrån? 0588235294117647, 5. För de primtal q, för vilka periodlängden l i decimalbråksutvecklingen av 1/q inte är maximal, vad kan sägas om l? Lämpliga testfall är q = 13 och q = 37. Är de perioder, som uppträder, också cykliska tal? Kan Du bringa något system i de olika perioderna? 6. Om 1/q 1 har periodlängden l 1 och 1/q 2 har periodlängden l 2, vilken periodlängd får då 1/q 1 q 2? Lämpliga testfall är q 1 = 37, q 2 = 41 och q 1 = 7, q 2 = 11. Kan Du formulera en allmän regel, som har att göra med faktorerna i q 1 och q 2? 7. Kan Du finna något samband mellan periodlängden för 1/q, där q är en faktor i 10 n 1 och n? Ange alla tal, som har en 7-siffrig, periodisk decimalbråksutveckling.

304 Hans Riesel Talsystem med annan bas än 10. Genom några enkla ändringar i datorprogrammet kan Du lätt utföra ovanstående undersökning för ett talsystem med en annan bas B än 10. Det som skall ändras är faktorn 10 i satsen t:=10*t, som ändras till t:=b*t. (Det kan vara praktiskt att deklarera variabeln B, och läsa in den i början av körningen.) Om B > 10, måste också utskriften av B-alerna (motsvarigheten till decimalerna) ändras. Du måste införa symboler för siffrorna motsvarande 10, 11,..., B 1, lämpligen A, B, C,... I det hexadecimala talsystemet t.ex., där B = 16, får man sätta 10 = A, 11 = B, 12 = C, 13 = D, 14 = E och 15 = F. Sedan får man ändra utskriftssatsen write(s:1) (och motsvarande satser som använder writeln) för siffrorna i perioden till if s<10 then write(s:1) else write(chr(s+55):1) Efter att ha infört dessa ändringar i programmet, provkör och försök att svara på följande frågor: 1. Undersök periodlängden för olika baser för t.ex. bråket 1/7. Hur går det, om Du väljer baser som är kongruenta mod 7, t.ex. baserna 3, 10 och 17? Eller baserna 2, 9 och 16? 2. Låt q vara ett primtal och undersök periodlängden för 1/q för olika baser B. Kan Du säga något om de periodlängder som uppstår? Finns det för ett valt värde på q alltid baser B, som ger den maximala periodlängden q 1? (Sådana tal B kallas i talteorin för primitiva rötter till primtalet q.) 3. Om Du har hittat en primitiv rot till q, kan Du härleda andra? Kan Du finna alla primitiva rötter, utgående från en viss av dem? Hur många primitiva rötter < q har primtalet q? Om Du vill veta, hur en stor matematiker har behandlat problemet, kan Du läsa i

Periodiska decimalbråk 305 Gauss, C.F., Untersuchungen über höhere Arithmetik. Chelsea Publishing Company 1965, s 366 373 samt s 453.