previous up next
Foregående: Tallegemer Op: FAMØSmarts 1996 Næste: Litteratur

Talrepræsentation

Rasmus Borup Hansen

Der er nok få, der bryder sig om at skrive tex2html_wrap_inline2881 (se artiklen om konstruktion af tallene) i stedet for det naturlige tal fire. Endnu værre er det, hvis man opfatter fire som et reelt tal. Så skal man (jf. konstruktionen af tex2html_wrap_inline2355 ) angive alle rationale tal mindre end fire, der hver især er en ækvivalensklasse (jf. konstruktionen af tex2html_wrap_inline2353 ) af par af ækvivalensklasser (jf. konstruktionen af tex2html_wrap_inline2397 ) af mængder, der opfylder de tre betingelser for at være et naturligt tal. Det er derfor ganske nyttigt at kunne angive et tal vha. et simpelt system.

Positionssystemer

De fleste af FAMØS's læsere ved vel, at vi i dag hovedsageligt bruger et titals positionssystem (dvs. et positionssystem med grundtal 10) til at repræsentere tal. De fleste ved nok også, at computere og lommeregnere oftest bruger det binære talsystem internt (altså et positionssystem med grundtal 2). Men som vi skal, er dette slet ikke de eneste muligheder.

Med skrivemåden tex2html_wrap_inline2889 forstår vi tallet

equation770

Vi siger, at tex2html_wrap_inline2889 er tallet a skrevet i et positionstalsystem med grundtal b. I vores sædvanlige talsystem er b=10 og vi vælger tex2html_wrap_inline2899 'erne blandt cifrene 0, 1, 2, 3, 4, 5, 6, 7, 8 og 9. I det følgende vil alle tal, der er skrevet i titalssystemet, blive skrevet tex2html_wrap_inline2901 , dvs. uden parenteserne og angivelse af grundtallet.

Sædvanligvis kræves, at tex2html_wrap_inline2903 , og at tex2html_wrap_inline2905 , men vi skal se eksempler på, at det ikke nødvendigvis behøver at være sådan.

Udover titalssystemet kan man også støde på det binære talsystem (b=2, tex2html_wrap_inline2909 ), det oktale talsystem (b=8, tex2html_wrap_inline2913 ) og det hexadecimale talsystem (b=16, tex2html_wrap_inline2917 ). Regning i disse talsystemer foregår helt som i titalssystemet:

xxalignat786

Det er nemt at se, at der er en simpel sammenhæng mellem tal skrevet med grundtal b og tal det samme tal skrevet med grundtal tex2html_wrap_inline2921 :

equation817

hvor

equation824

de to 3-taller i tallene på hexadecimal form i regnestykket ovenfor svarer f.eks. til de to forekomster af 11 helt til venstre i de to nederste linjer i tallene på binær form.

Ofte angiver man, at et tal er negativt vha. tegnet -, men der er også andre muligheder. Interesserer man sig kun for hele tal, kan man f.eks. regne modulo tex2html_wrap_inline2925 , idet man indskrænker sig til at betragte tallene tex2html_wrap_inline2927 . Hvis tex2html_wrap_inline2929 er et ikke-negativt af disse tal, er nemlig tex2html_wrap_inline2931 , så hvis b=n=10 er f.eks. tex2html_wrap_inline2935 . Tilsvarende bliver tex2html_wrap_inline2937 , heldigvis. Den illustrerede metode kaldes ti-komplementnotation. Ulemperne ved denne metode er, at man må begrænse sig til en endelig delmængde af de hele tal, at denne mængde ikke er symmetrisk, og at division med b ikke længere kan foregå blot ved at rykke alle cifrene en plads til højre.

To-komplementnotation bruges flittigt af computere, idet b=2 og n=32 muliggør repræsentation af tal fra tex2html_wrap_inline2945 til tex2html_wrap_inline2947 , hvilket er rigeligt til de fleste gøremål.

En sjældent brugt mulighed for at angive negative tal er at bruge et negativt grundtal. Hvis b=-10, er

multline835

hvor tex2html_wrap_inline2951 som sædvanlig. Da

equation844

må ``negadecimal''-repræsentationen af 1234567890 være tex2html_wrap_inline2953 (tag cifrene fra de ulige pladser i 10305070900 og de lige pladser i 9070503010). Tilsvarende fås, da 806040200 - 2040608090 = -1234567890, at tex2html_wrap_inline2957 . Faktisk gælder der [1], at ethvert reelt tal kan repræsenteres i ``negadecimaltalsystemet'' uden fortegn!

Der er sandelig ingen grund til at begrænse sig til hele endsige reelle grundtal. F.eks. giver grundtallet 2i anledning til det såkaldte ``kvart-imaginære'' talsystem, der har den egenskab, at alle komplekse tal kan repræsenteres vha. cifrene 0, 1, 2 og 3 uden fortegn! F.eks. er

align852

Der gælder endvidere, at

multline857

så konvertering til og fra kvart-imaginær notation reducerer til konvertering til og fra negativ kvartær (grundtal -4) notation. En af fordelene ved kvart-imaginær notation er, at multiplikation og division kan foretages uden at skulle skelne mellem reel- og imaginærdelene, se f.eks. [1].

Endnu en sjov måde at repræsentere tal på er det balancerede trinære talsystem, der tager udgangspunkt i det trinære (grundtal 3) talsystem, men i stedet for 0, 1 og 2 bruger 0 og +1 og -1 (i det følgende skrevet hhv. tex2html_wrap_inline2967 , tex2html_wrap_inline2969 og tex2html_wrap_inline2971 ). F.eks. er tex2html_wrap_inline2973 og tex2html_wrap_inline2975 . Det balancerede trinære talsystem har flere gode egenskaber:

  1. Fortegnsskift foretages ved at bytte om på tex2html_wrap_inline2969 og tex2html_wrap_inline2971 .
  2. Fortegnet er givet ved det mest betydende ciffer forskelligt fra nul, og ordningen stemmer overens med den leksikografiske ordning, ligesom i det titalssystemet.
  3. Afrunding til nærmeste heltal foregår ved at fjerne alle cifre til højre for kommaet.
Addition i det balancerede trinære talsystem foregår vha. følgende additionstabel (to addender og en mente):

22220 22021 22102 20221 20002 20100 21202 21000 21101 02221 02002 02100 00202 00000 00101 01200 01001 01112 12202 12000 12101 10200 10001 10112 11201 11012 11110

Subtraktion er blot fortegnsskift efterfulgt af addition, og også multiplikation kan klares blot ved fortegnsskift og addition.

Som et kuriosum kan nævnes, at den russiske eksperimental-computer SETUN var baseret på det balancerede trinære talssystem. Det kan være, at vi pga. symmetrien og den simple aritmetik en dag vil se flere computere baseret herpå.

Vi bør også kaste et blik på talsystemer med blandet grundtal. Givet en følge af tal tex2html_wrap_inline2981 forskellige fra nul definerer vi:

multline878

Hvor fjendtligt et sådant talsystem end ser ud, er det faktisk noget, vi kender ret godt fra dagligdagen. F.eks. er 3 uger, 2 dage, 9 timer, 22 minutter, 57 sekunder og 492 millisekunder lig

equation898

Det er muligt at addere og subtrahere tal med blandede grundtal vha. de sædvanlige metoder. Multiplikation og division kræver imidlertid lidt omtanke.

Flydende tal

Der er ikke mange, der anvender sædvanlige positionssystemer til at angive meget store eller små tal, idet det simpelthen er for upraktisk. Man anvender andre metoder, og f.eks. angives Avogadros tal ofte som tex2html_wrap_inline2983 i stedet for den uoverskuelige repræsentation i titalssystemet. I det følgende vil sådanne repræsentationer blive diskuteret.

Ved et flydende tal med grundtal b forstår vi et par af tal (e,f) med |f|<1 og tex2html_wrap_inline2991 , hvor (e,f) repræsenterer tallet tex2html_wrap_inline2995 . Da man sjældent vil angive meget store eller meget små tal med maksimal nøjagtighed, angiver man ofte kun de p mest betydende cifre af f, svarende til cifrene lige til højre for kommaet i en repræsentation af f i et positionssystem, hvor der er anvendt samme grundtal som i det flydende tal. Der gælder altså, at tex2html_wrap_inline3003 er et heltal, og tex2html_wrap_inline3005 . Hvis p=6 og b=10 repræsenteresgif Avogadros tal således af (0.602252,24), og der gælder, at tex2html_wrap_inline3013 er et heltal. Sædvanligvis vil man skrive tex2html_wrap_inline2983 , men i teorien for flydende tal er det praktisk at ræssonere vha. par.

Når flydende tal anvendes i computere er b=2, og man begrænser sig til tal, hvor e kan skrives vha. q cifre i et tokomplementsystem. Endvidere bruges en cifferplads til at angive, om f er negativ.

Hvis tex2html_wrap_inline3025 og tex2html_wrap_inline3027 er flydende tal, beregnes summen u+v ud fra formlen

align909

idet tex2html_wrap_inline3031 kan udregnes blot ved at flytte kommaet i tex2html_wrap_inline3033 . Det er her værd at bemærke, at tex2html_wrap_inline3035 kan være større end 1, hvilket der kan rådes bod på, blot ved at flytte på kommaet og korrigere eksponenten tilsvarende. Multiplikation og division foregår efter samme principper.

Med flydende tal kan man angive en ``passende stor'' delmængde af de reelle tal vha. forholdsvis få symboler, selvom man lægger bånd på antallet af cifre i e og f. Hvis vi lader det reelle tal x repræsenteres af det flydende tal tex2html_wrap_inline3043 , bruger man størrelsen tex2html_wrap_inline3045 som mål for den fejl, man begår. Denne størrelse kaldes den relative fejl. Multiplikation og division af flydende tal forstørrer ikke den relative fejl væsentligt. Det gør derimod addition og subtraktion, hvis man f.eks. vil udregne u+v og tex2html_wrap_inline3049 , eller hvis u-v skal udregnes og tex2html_wrap_inline3053 . Faktisk er det så slemt, at den associative lov ikke gælder for addition af flydende tal (her er p=6 og q=10):

align920

Den associative lov for multiplikation gælder heller ikke, men fejlen bliver sjældent ret stor. Man kan derimod gå grueligt galt i byen, hvis man tror, den distributive lov gælder, og heller ikke Cauchys ulighed får lov til at overleve [1]. De kommutative love for multiplikation og addition gælder dog stadig. Endvidere gælder, at hvis u, v og w er flydende tal og tex2html_wrap_inline3065 , så er tex2html_wrap_inline3067 og tex2html_wrap_inline3069 . Hvis endvidere w>0, er tex2html_wrap_inline3073 og tex2html_wrap_inline3075 .

Selvom regning med flydende tal er unøjagtig, er der en række regneregler for reelle tal, der kan overføres til flydende tal. Endvidere kan man ofte vurdere den relative fejl i de øvrige regneregler så godt nedad, at man ikke behøver bekymre sig om den. Hvis f.eks.

equation923

kan man vise [1], at

equation928

hvor tex2html_wrap_inline3077 er den mindste værdi, f kan antage.


previous up next
Foregående: Tallegemer Op: FAMØSmarts 1996 Næste: Litteratur

famos@math.ku.dk
Thu Mar 7 23:55:45 MET 1996