Bitmask sebagai Set Kecil
Wakili subset sebagai integer.
Bitmask sebagai Set Kecil ialah pelajaran Persediaan Temu Duga Pengaturcaraan percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Persediaan Temu Duga Pengaturcaraan, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Persediaan Temu Duga Pengaturcaraan merangkumi sejumlah 4 pelajaran.
Nombor Bulat sebagai Himpunan
Satu nombor bulat boleh mewakili seluruh himpunan: bit i bernilai 1 bermaksud elemen i berada dalam himpunan. Ini memampatkan subhimpunan menjadi satu nilai kecil yang pantas. 🎒
Himpunan Kosong dan Penuh
Nombor 0 ialah himpunan kosong, manakala nilai yang mempunyai n bit terendah semuanya ON bermaksud setiap elemen hadir.
empty = 0
full = (1 << 4) - 1 # 0b1111, four elementsTambah Satu Elemen
Untuk menambah elemen i ke dalam himpunan, gunakan OR pada bitnya. Ini tepat seperti operasi menetapkan bit, tetapi kini ditafsirkan sebagai kesatuan dengan satu elemen.
s = 0
s |= (1 << 2) # add element 2Buang Satu Elemen
Untuk membuang elemen i, gunakan AND dengan bit terbalik. Elemen itu keluar daripada himpunan dan semua elemen lain kekal. Ini ialah beza himpunan dengan satu elemen.
s &= ~(1 << 2) # remove element 2Uji Keahlian
Periksa sama ada elemen i tergolong dalam himpunan dengan menggunakan AND pada bitnya. Hasil bukan sifar bermaksud elemen itu ialah ahli himpunan.
if s & (1 << 2):
print('2 is in the set')Kesatuan dan Persilangan
Gunakan OR pada dua topeng untuk mendapatkan kesatuan; gunakan AND untuk mendapatkan persilangan. Operasi himpunan keseluruhan menjadi satu arahan mesin setiap satu.
union = a | b
inter = a & bSaiz Himpunan ialah Bilangan Bit 1
Bilangan elemen dalam topeng bit hanyalah bilangan bit 1 yang ditetapkan. Gunakan bit_count untuk mendapatkan saiznya serta-merta.
size = mask.bit_count()Ulang Melalui Semua Subhimpunan
Untuk n elemen, integer daripada 0 hingga 2 kuasa n tolak 1 menyenaraikan setiap subhimpunan. Satu gelung julat yang mudah merangkumi semuanya.
for mask in range(1 << n):
pass # mask is one subsetUlang Subtopeng dengan Pantas
Untuk melawati hanya subhimpunan bagi topeng tertentu, gunakan gelung subtopeng klasik. Gelung ini melalui setiap subhimpunan dalam susunan menurun.
sub = mask
while sub:
sub = (sub - 1) & maskDP Topeng Bit Digunakan di Sini
Topeng bit ialah keadaan bagi banyak masalah DP, seperti masalah jurujual bergerak, yang menggunakan topeng untuk menjejak nod yang telah anda lawati.
Pastikan n Kecil
Dengan 2 kuasa n subhimpunan, helah ini hanya praktikal untuk n yang kecil, biasanya sehingga kira-kira 20. Selepas itu bilangan tersebut berkembang secara mendadak. ⚠️
Semakan Pantas
Satu soalan terakhir tentang himpunan sebagai topeng.
Rumusan: Himpunan Topeng Bit
Anda boleh menyimpan himpunan dalam satu nombor bulat, menambah dan membuang elemen dengan topeng, serta mengulang melalui setiap subhimpunan. Ini membuka jalan kepada DP topeng bit yang pantas. 🎉
Pelajari Persediaan Temu Duga Pengaturcaraan dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 90
- Pelajaran
- 360
Soalan Lazim
Adakah pelajaran “Bitmask sebagai Set Kecil” percuma?
Ya — teks penuh “Bitmask sebagai Set Kecil” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Persediaan Temu Duga Pengaturcaraan, tingkat taraf kepada CoddyKit PRO. Kursus Persediaan Temu Duga Pengaturcaraan merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Bitmask sebagai Set Kecil”?
Wakili subset sebagai integer. Anda berlatih Persediaan Temu Duga Pengaturcaraan menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Persediaan Temu Duga Pengaturcaraan?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Persediaan Temu Duga Pengaturcaraan di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Bitmask sebagai Set Kecil” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Persediaan Temu Duga Pengaturcaraan ini?
Ya. Setiap pelajaran Persediaan Temu Duga Pengaturcaraan menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- AND, OR, XOR dan Anjakan
- Tetapkan, Kosongkan dan Togol Bit
- Kira Bit dan Bit Set Terendah
- Bitmask sebagai Set Kecil