Ero sivun ”Eukleideen algoritmi” versioiden välillä
[arvioimaton versio] | [arvioimaton versio] |
p Botti lisäsi: eo:Eŭklida algoritmo |
→Kiinalaisten käyttämä algoritmi: HTML-muotoilun tilalle wikiä |
||
Rivi 44: | Rivi 44: | ||
=== Kiinalaisten käyttämä algoritmi === |
=== Kiinalaisten käyttämä algoritmi === |
||
[[Kiina]]laiset suorittivat saman algoritmin [[helmitaulu]]ssa seuraavasti: |
|||
Vähennä toistuvasti pienempää suuremmasta. Kun luvut ovat samat, algoritmi päättyy ja ko. luku on suurin yhteinen tekijä. |
Vähennä toistuvasti pienempää suuremmasta. Kun luvut ovat samat, algoritmi päättyy ja ko. luku on suurin yhteinen tekijä. |
||
{| border=1 width=400 |
|||
⚫ | |||
<tr> |
|||
| 31 || 31 || 6 || 6 || 6 || 6 || 6 || ... || 1 |
|||
<td align=right>31</td> |
|||
|- align="right" |
|||
| 56 || 25 || 25 || 19 || 13 || 7 || 1 || ... || 1 |
|||
⚫ | |||
|} |
|||
<td align=right>6</td> |
|||
<td align=right>6</td> |
|||
<td align=right>6</td> |
|||
<td align=right>6</td> |
|||
<td align=right>...</td> |
|||
<td align=right>1</td> |
|||
</tr> |
|||
<tr> |
|||
<td align=right>56</td> |
|||
<td align=right>25</td> |
|||
<td align=right>25</td> |
|||
<td align=right>19</td> |
|||
<td align=right>13</td> |
|||
<td align=right>7</td> |
|||
<td align=right>1</td> |
|||
<td align=right>...</td> |
|||
<td align=right>1</td> |
|||
</tr> |
|||
</table> |
|||
Etsitään syt(15,25). |
Etsitään syt(15,25). |
||
Rivi 83: | Rivi 64: | ||
Kiinalaisittain: |
Kiinalaisittain: |
||
{| border=1 width=200 |
|||
<tr> |
|||
|- align="right" |
|||
| 25 || 10 || 10 || 5 |
|||
<td align=right>10</td> |
|||
|- align="right" |
|||
| 15 || 15 || 5 || 5 |
|||
<td align=right>5</td> |
|||
|} |
|||
</tr> |
|||
<tr> |
|||
<td align=right>15</td> |
|||
<td align=right>15</td> |
|||
<td align=right>5</td> |
|||
<td align=right>5</td> |
|||
</tr> |
|||
</table> |
|||
[[Luokka:Lukuteoria]] |
[[Luokka:Lukuteoria]] |
Versio 26. marraskuuta 2008 kello 21.46
Eukleideen algoritmin on keino, jonka avulla voidaan selvittää kahden kokonaisluvun suurin yhteinen tekijä (syt). Algoritmi perustuu jakoyhtälön perättäiseen käyttöön.
Eukleideen algoritmi etenee seuraavasti:
- Ensin kirjoitetaan jakoyhtälö luvuilla a ja b
- Seuraavaksi kirjoitetaan jakoyhtälö luvulle b ja edellisen jakoyhtälön jakojäännökselle
- Toistetaan niin usein, että jakojäännökseksi saadaan nolla.
- Lukujen a ja b suurin yhteinen tekijä on viimeisin nollasta eroava jakojäännös
Algoritmi
Olkoot luvut a ja b kokonaislukuja ja b erisuuri kuin nolla. Käyttämällä toistuvasti jakoyhtälöä saadaan:
...
- .
Algoritmi päättyy, koska luvut r0, r1, ...,rn muodostavat aidosti vähenevän jonon positiivisia kokonaislukuja.
Viimeinen jakojäännös rn jakaa (tasan) luvut a ja b:
Alimmasta yhtälöstä rn jakaa luvun rn-1.
Koska , niin rn jakaa luvun rn-2
Näin jatkamalla saadaan lopulta, että rn jakaa b:n ja a:n.
Jos luvuilla a ja b on yhteinen tekijä c, ts. sanoen a ja b ovat tasan jaollisia luvulla c, c jakaa luvun r0, r1, ... yllä olevien yhtälöiden nojalla. Näin siis c jakaa luvun rn, joka on siten yhteisistä tekijöistä suurin.
Esimerkkejä
Määritetään lukujen 112 ja 408 suurin yhteinen tekijä eli syt(112, 408).
Määritetään lukujen suurin yhteinen tekijä Eukleideen algoritmin avulla:
Lukujen 112 ja 408 suurin yhteinen tekijä on siis kahdeksan eli syt(112, 408)=8.
Kiinalaisten käyttämä algoritmi
Kiinalaiset suorittivat saman algoritmin helmitaulussa seuraavasti:
Vähennä toistuvasti pienempää suuremmasta. Kun luvut ovat samat, algoritmi päättyy ja ko. luku on suurin yhteinen tekijä.
31 | 31 | 6 | 6 | 6 | 6 | 6 | ... | 1 |
56 | 25 | 25 | 19 | 13 | 7 | 1 | ... | 1 |
Etsitään syt(15,25).
25 = 1 * 15 + 10.
15 = 1 * 10 + 5.
10 = 2 * 5 + 0.
eli syt(15,25) = 5.
Kiinalaisittain:
25 | 10 | 10 | 5 |
15 | 15 | 5 | 5 |