Bagian 22.7 Sage
Dalam bab ini Anda telah melihat bahwa lapangan hingga memiliki banyak struktur. Kita juga telah sering menjumpai lapangan hingga dalam Sage sebagai contoh gelanggang dan lapangan. Sekarang kita dapat menggabungkan keduanya, terutama dengan menggunakan perintah yang telah kita kenal, ditambah beberapa perintah baru.
Subbagian 22.7.1 Membuat Lapangan Hingga
Menurut Teorema 22.1.6, semua lapangan hingga dengan orde tertentu saling isomorfik dan orde yang mungkin terbatas pada perpangkatan bilangan prima. Kita dapat menggunakan perintah
FiniteField(), seperti sebelumnya, atau padanannya yang lebih singkat, yaitu GF(). Secara opsional, kita dapat menentukan polinomial tak tereduksi untuk konstruksi lapangan tersebut. Kita dapat memandang polinomial ini sebagai pembangkit ideal utama dari suatu gelanggang polinomial, atau memandangnya sebagai aturan “penulisan ulang” bagi pangkat pembangkit lapangan yang memungkinkan kita mengalikan elemen dan merumuskannya kembali sebagai kombinasi linear pangkat-pangkat yang lebih rendah.
Jika polinomial tak tereduksi tidak diberikan, Sage akan menggunakan polinomial Conway. Anda dapat menentukannya dengan perintah
conway_polynomial(), atau cukup membangun lapangan hingga lalu meminta polinomial pendefinisinya dengan metode .polynomial().
Kode Sage (cadangan statis)
F.<a> = GF(7^15); F
Keluaran referensi (cadangan statis)
Finite Field in a of size 7^15
Kode Sage (cadangan statis)
F.polynomial()
Keluaran referensi (cadangan statis)
a^15 + 5*a^6 + 6*a^5 + 6*a^4 + 4*a^3 + a^2 + 2*a + 4
Kode Sage (cadangan statis)
a^15 + 5*a^6 + 6*a^5 + 6*a^4 + 4*a^3 + a^2 + 2*a + 4
Keluaran referensi (cadangan statis)
0
Kode Sage (cadangan statis)
conway_polynomial(7, 15)
Keluaran referensi (cadangan statis)
x^15 + 5*x^6 + 6*x^5 + 6*x^4 + 4*x^3 + x^2 + 2*x + 4
Agar lebih mudah dibaca, kita memaksakan suatu daftar koefisien ke dalam himpunan polinomial (yang diperoleh dengan metode
.parent() pada polinomial sederhana) untuk mendefinisikan polinomial.
Kode Sage (cadangan statis)
y = polygen(Integers(7), 'y') P = y.parent() p = P([4, 5, 2, 6, 3, 3, 6, 2, 1, 1, 2, 5, 6, 3, 5, 1]); p
Keluaran referensi (cadangan statis)
y^15 + 5*y^14 + 3*y^13 + 6*y^12 + 5*y^11 + 2*y^10 + y^9 + y^8 + 2*y^7 + 6*y^6 + 3*y^5 + 3*y^4 + 6*y^3 + 2*y^2 + 5*y + 4
Kode Sage (cadangan statis)
p.is_irreducible()
Keluaran referensi (cadangan statis)
True
Kode Sage (cadangan statis)
T.<b> = GF(7^15, modulus=p); T
Keluaran referensi (cadangan statis)
Finite Field in b of size 7^15
Subbagian 22.7.2 Logaritma dalam Lapangan Hingga
Salah satu perintah berguna yang belum kita uraikan adalah metode
.log() untuk elemen lapangan hingga. Karena sekarang kita mengetahui bahwa grup multiplikatif elemen tak nol bersifat siklik, kita dapat menyatakan setiap elemen sebagai pangkat dari pembangkit. Metode log akan mengembalikan pangkat tersebut.
Biasanya kita ingin menggunakan pembangkit sebagai basis perhitungan logaritma dalam lapangan hingga. Akan tetapi, basis lain dapat digunakan, dengan memahami bahwa jika basis tersebut bukan pembangkit, logaritmanya mungkin tidak ada (i.e. mungkin tidak terdapat solusi bagi persamaan yang bersangkutan).
Kode Sage (cadangan statis)
F.<a> = GF(5^4) a^458
Keluaran referensi (cadangan statis)
3*a^3 + 2*a^2 + a + 3
Kode Sage (cadangan statis)
(3*a^3 + 2*a^2 + a + 3).log(a)
Keluaran referensi (cadangan statis)
458
Kode Sage (cadangan statis)
exponent = (3*a^3 + 2*a^2 + a + 3).log(2*a^3 + 4*a^2 + 4*a) exponent
Keluaran referensi (cadangan statis)
211
Kode Sage (cadangan statis)
(2*a^3 + 4*a^2 + 4*a)^exponent == 3*a^3 + 2*a^2 + a + 3
Keluaran referensi (cadangan statis)
True
Kode Sage (cadangan statis)
(3*a^3 + 2*a^2 + a + 3).log(a^2 + 4*a + 4)
Keluaran referensi (cadangan statis)
Traceback (most recent call last): ... ValueError: no logarithm exists
Karena kita telah mengenal banyak perintah Sage, tidak banyak lagi yang perlu diperkenalkan sebelum kita dapat bekerja secara produktif dengan lapangan hingga. Latihan-latihan berikut mengeksplorasi cara mengkaji dan memanfaatkan struktur lapangan hingga dalam Sage.

