Latihan-latihan berikut tidak terlalu membahas koset dan subgrup, melainkan lebih berfokus pada penggunaan Sage sebagai perangkat eksperimen. Latihan tersebut dirancang untuk membantu Anda menjadi lebih efisien sekaligus lebih ekspresif ketika menulis perintah dalam Sage. Kita akan mempunyai banyak kesempatan untuk mengolah koset dan subgrup dalam bab-bab mendatang. Latihan-latihan ini tidak memuat banyak panduan dan semakin menantang secara bertahap. Latihan tersebut dirancang untuk menjelajahi atau menegaskan hasil yang disajikan dalam bab ini atau bab-bab sebelumnya.
Penting: Anda harus menjawab masing-masing dari tiga soal terakhir dengan satu baris Sage (yang rumit) dan berakhir dengan keluaran True. “Satu baris” berarti beberapa perintah Sage dikemas bersama-sama dengan cara yang rumit. Hal ini tidak berarti beberapa perintah Sage dipisahkan oleh titik koma dan diketik pada satu baris. Pastikan Anda menyertakan beberapa langkah antara yang digunakan untuk membangun penyelesaian, tetapi gunakan rentang nilai yang lebih kecil agar pembaca tidak kewalahan oleh banyaknya keluaran. Hal ini akan membantu Anda dan penilai pekerjaan Anda memperoleh keyakinan bahwa versi akhirnya benar.
Ketika Anda memeriksa keterbagian bilangan bulat di bawah ini, ingatlah bahwa range() menghasilkan bilangan bulat biasa, yang fungsionalitasnya cukup sederhana. Perintah srange() menghasilkan bilangan bulat Sage, yang mempunyai jauh lebih banyak kemampuan. (Lihat latihan terakhir sebagai contoh.) Ingat pula bahwa komprehensi daftar merupakan cara yang sangat ringkas untuk memeriksa banyak kemungkinan sekaligus.
Gunakan .subgroups() untuk mencari contoh suatu grup \(G\) dan bilangan bulat \(m\text{,}\) sedemikian sehingga (a) \(m\) membagi orde \(G\text{,}\) dan (b) \(G\) tidak mempunyai subgrup berorde \(m\text{.}\) (Jangan gunakan grup \(A_4\) sebagai \(G\text{,}\) karena grup tersebut sudah terdapat dalam teks.) Berikan satu baris kode Sage yang memuat seluruh logika untuk menghasilkan \(m\) yang diinginkan sebagai keluarannya. (Anda dapat memberi grup Anda nama sederhana pada baris sebelumnya, lalu cukup merujuk grup tersebut dengan namanya.) Berikut contoh sangat sederhana yang mungkin membantu Anda menyusun jawaban.
Periksa kebenaran Teorema Kecil Fermat (salah satu bentuknya) dengan menggunakan bilangan komposit \(391=17\cdot 23\) sebagai pilihan basis (baik \(a\) maupun \(b\)), dan dengan \(p\) mengambil nilai setiap bilangan prima antara \(100\) dan \(1000\text{.}\)
Bangun penyelesaian secara bertahap — buat daftar pangkat (mulailah hanya dengan beberapa bilangan prima), lalu buat daftar pangkat yang direduksi dengan aritmetika modular, kemudian daftar perbandingan dengan nilai yang diprediksi, dan akhirnya pemeriksaan terhadap semua nilai logis hasil perbandingan tersebut. Ini merupakan strategi yang berguna bagi banyak masalah serupa. Pada akhirnya Anda akan menulis satu baris yang melakukan pemeriksaan dan mencetak True. Berikut beberapa petunjuk tambahan mengenai fungsi-fungsi yang berguna.
Periksa bahwa grup unit modulo \(n\) berorde \(n-1\) ketika \(n\) prima, sekali lagi untuk semua bilangan prima antara \(100\) dan \(1000\text{.}\) Seperti sebelumnya, keluaran Anda cukup berupa True satu kali, yang menunjukkan bahwa pernyataan mengenai orde benar untuk semua bilangan prima yang diperiksa. Seperti sebelumnya, bangun penyelesaian secara bertahap, dan mulailah dengan rentang bilangan prima yang lebih kecil. Nyatakan jawaban Anda sebagai satu baris kode Sage.
Periksa Teorema Euler untuk semua nilai \(0\lt n\lt 100\) dan untuk \(1\leq a \leq n\text{.}\) Hal ini memerlukan pernyataan for bersarang dengan suatu syarat. Sekali lagi, berikut contoh kecil yang mungkin membantu menyusun satu baris kode Sage Anda. Perhatikan penggunaan srange() dalam contoh ini.
Grup simetris pada \(7\) simbol, \(S_7\text{,}\) mempunyai \(7! = 5040\) elemen. Pertimbangkan pertanyaan-pertanyaan berikut tanpa menggunakan Sage, berdasarkan pengetahuan kita mengenai orde elemen grup permutasi (Latihan 5.4.13).
Pertanyaan-pertanyaan ini akan lebih mudah jika Anda terbiasa menggunakan koefisien binomial untuk menghitung dalam situasi rumit yang serupa. Namun demikian, pikirkanlah setiap pertanyaan dengan sungguh-sungguh (dan mungkin beberapa pertanyaan buatan Anda sendiri) sebelum menjalankan Sage.
Sekarang, hitung banyaknya elemen dari setiap orde dengan menggunakan metode .order(), lalu masukkan perhitungan ini ke dalam komprehensi daftar yang membuat satu daftar berisi banyaknya elemen tersebut. Anda dapat memeriksa pekerjaan Anda (atau memeriksa Sage) dengan membungkus daftar ini dalam sum() dan, jika semuanya benar, memperoleh \(5040\text{.}\)
Berikan komentar mengenai proses mempelajari pertanyaan-pertanyaan ini mula-mula tanpa bantuan komputasi, lalu sekali lagi dengan Sage. Untuk nilai \(n\) manakah menurut Anda Sage akan terlalu lambat dan pikiran Anda lebih cepat?