Elementär talteori
Heltalsfunktioner
Låt . Funktionen kallas taket av och bestämmer det största heltal mindre än eller lika med .-13
4
Funktionen kallas golvet av och bestämmer det minsta heltal större än eller lika med .
-12
-12
Med
round
avrundar man till närmsta heltal.2
3
Med signum av ett reellt tal avses funktionen
$$
\mathrm{sign}(x)
=
\begin{cases}
\phantom{-}1 & \text{om $x > 0$} \\
\phantom{-}0 & \text[om $x = 0$] \\
-1 & \text{om $xx [removed]
-1
Täljare och nämnare i ett rationellt tal fås med
numerator
respektive denominator
.12
5
Delbarhet och primtal
Låt och vara heltal, där . Kvoten och resten vid heltalsdivision av med bestäms med // respektive % .3
6
Alltså är .
Samtliga positiva delare till :
[1, 2, 7, 11, 14, 22, 77, 154]
Antal positiva delare till :
8
Med
is_prime
kan vi avgöra om ett heltal är ett primtal eller inte.False
True
Funktionen nth_prime() returnerar det :te primtalet.
2
132241
Samtliga primtal mellan och får man med prime_range(, ).
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
Antag att du vill iterera över ala primtal mindre eller lika med . En generator för iterationen fås då med primes().
2
3
5
7
[2, 3, 5, 7, 11, 13, 17, 19]
Funktionen bestämmer antal primtal mindre än eller lika med .
5525
Med funktionerna previous_prime() och next_prime() finner vi det största primtal sådant att respektive det minsta primtal sådant att .
13
17
Primtalsfaktorisering fås med factor.
Utdata från factor är en egen datatyp, för vilken en metod för utskrift är definierad.
<class 'sage.structure.factorization_integer.IntegerFactorization'>
Itererar vi över faktoriseringen ser vi att primtal och motsvarande exponent är givna som par.
[(2, 2), (3, 1), (13, 4)]
Med andra ord kan vi komma åt enskilda primtal eller exponenter i en primtalsfaktorisering på samma sätt som då vi läser av enskilda element i en lista.
(3, 1)
3
[2, 3, 13]
[4, 3, 28561]
Samtliga olika primtal i en faktorisering kan också bestämmas med prime_factors
[2, 3, 13]
Största gemensamma delare och diofantiska ekvationer
Största gemensamma delare till två heltal bestämmer man med gcd.2
Vid fler än två heltal placerar man heltalen i en lista.
6
Funktionen xgcd(, ) returnerar sådana att .
(4, -8, 13)
Alltså är .
Minsta gemensamma multipel bestämmer man med lcm.
3503326
Låt oss lösa den diofantiska ekvationen .
(, )
Vi får en parameterlösning där är ett godtyckligt heltal.
24*t_0 - 98
42
Lösningen då :
[-50, 336]
Talsystem
Med funktionen digits bestämmer man siffrorna till ett heltali i valfri bas. Första siffran i listan är entalssiffran.[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1]
['4', 'B', '3', 'C', '2']
[2, 0, 0, 2, 1, 1, 2, 1, 0, 0, 0, 1]
Heltalet 181172 har således den binära representationen 101100001110110100 och den hexadecimala representationen 2C3B4 samt i basen har heltalet formen 100012112002.
Att konverterar från valfri bas till decimalbas, d.v.s. 10, görs via ZZ.
109
38
321
123
10682779
Konguensteori
Mängden definieras med Zmod.Ring of integers modulo 28
Samtliga element i .
[, , , , , , , , , , , , , , , , , , , , , , , , , , , ]
Låt oss tilldela två variabler element ur .
Det ser ut att vara helt vanligt heltal. Men Sage uppfattar dem som element i .
Vid beräkningar bestäms resten modulo automatiskt.
Lyfter vi elementen till heltal före beräkningarna får vi ett helt annat resultat.
Notera att .
I de fall då ett element är inverterbar kan vi skriva
x^(-1)
för att bestämma dess multiplikativa invers.Alltså är .
För att beräkna modulo kan man använda funktionen power_mod(, , ). Låt oss beräkna modulo .
Notera att är ett stort heltal.
Låt oss lösa konguensen .
[(), (), ()]
Antag att vi vill lösa kongruenssystemet
ParseError: KaTeX parse error: Unknown column alignment: @ at position 36: … \begin{array}{@̲{}l@{}}
…
Eftersom har systemet en entydigt lösning modulo enligt kinesiska restsatsen. I Sage löser man systemet med funktionen crt (Chinese Remainder Theorem).