Enumerasi dengan itertools
Produk, kombinasi, dan permutasi
Enumerasi dengan itertools adalah pelajaran Competitive Programming Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Competitive Programming Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Competitive Programming Academy mencakup 4 pelajaran total.
Biarkan itertools Menangani Perulangan
itertools dari Python menghasilkan combinations dan berbagai pengurutan untuk Anda, sehingga Anda menulis lebih sedikit kode perulangan dan membuat lebih sedikit kesalahan. 🙂
Lakukan Impor Terlebih Dahulu
Semua fungsi tersedia dalam satu modul, jadi mulailah dengan import itertools. Setelah itu, Anda dapat langsung memanggil product, permutations, dan combinations.
import itertoolsproduct untuk Menggantikan Perulangan Bersarang
Gunakan product untuk menggantikan perulangan bersarang yang dalam atas pilihan yang sama. Fungsi ini menghasilkan setiap tupel pilihan dari rentang yang diberikan.
for combo in itertools.product(range(3), repeat=2):
print(combo)permutations untuk Pengurutan
Saat urutan penting, permutations mencantumkan setiap susunan elemen. Sangat cocok untuk pencarian menyeluruh kecil bergaya masalah pedagang keliling.
for p in itertools.permutations([1, 2, 3]):
print(p)combinations untuk Memilih
Saat urutan tidak penting, combinations memilih setiap kelompok berukuran r. Sangat berguna untuk memilih himpunan bagian elemen yang akan diuji.
for c in itertools.combinations([1, 2, 3, 4], 2):
print(c)Permutations dan Combinations
Perbedaan utamanya adalah urutan: permutations memperlakukan (1,2) dan (2,1) sebagai pilihan yang berbeda, sedangkan combinations menghitungnya sebagai pilihan yang sama.
Perhatikan Pertumbuhannya
Permutations bertumbuh sebesar n!, yang meningkat sangat cepat. Bahkan n sama dengan 11 sudah menghasilkan lebih dari empat puluh juta susunan, jadi pertahankan n tetap kecil.
Fungsi-Fungsi Ini Bersifat Tertunda
Fungsi-fungsi ini adalah generator: fungsi tersebut menghasilkan satu elemen setiap kali tanpa membuat daftar raksasa, sehingga penggunaan memori tetap rendah selama Anda melakukan perulangan.
Gabungkan dengan Pengujian
Hasilkan kandidat, lalu pertahankan hanya kandidat yang lolos pengujian Anda. Pola ini mengubah pencarian yang sulit menjadi perulangan singkat yang mudah dibaca.
best = min(itertools.permutations(cities), key=tour_length)combinations_with_replacement
Perlu memilih elemen yang dapat diulang? Gunakan combinations_with_replacement agar elemen yang sama dapat muncul lebih dari satu kali dalam sebuah kelompok.
Pilih Alat yang Tepat
Ajukan dua pertanyaan: apakah urutan penting, dan apakah elemen dapat diulang? Jawaban tersebut akan langsung menunjukkan fungsi itertools yang tepat.
Pemeriksaan Singkat
Anda harus mencacah setiap cara memilih 3 dari 6 elemen tanpa memperhatikan urutan.
Rangkuman
Gunakan product, permutations, dan combinations untuk melakukan pencacahan dengan rapi. Pilih berdasarkan apakah urutan penting dan apakah elemen dapat diulang, serta perhatikan pertumbuhannya. 🚀
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Enumerasi dengan itertools” gratis?
Ya — teks lengkap “Enumerasi dengan itertools” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Competitive Programming Academy, upgrade ke CoddyKit PRO. Kursus Competitive Programming Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Enumerasi dengan itertools”?
Produk, kombinasi, dan permutasi Kamu berlatih Competitive Programming Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Competitive Programming Academy?
Tidak diperlukan pengalaman sebelumnya. Competitive Programming Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Enumerasi dengan itertools” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Competitive Programming Academy ini?
Ya. Setiap pelajaran Competitive Programming Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Brute Force adalah Strategi yang Valid
- Enumerasi dengan itertools
- Enumerasi Subset dengan Bitmask
- Memangkas Ruang Pencarian dengan Cerdas