0Pricing
Coding Interview Prep · Ders

Bitmask Alt Küme Numaralandırması

Tüm alt kümeler üzerinde tam sayılarla dolaşın.

Bitmask Alt Küme Numaralandırması, CoddyKit'te ücretsiz bir Coding Interview Prep dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Coding Interview Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Coding Interview Prep kursu toplamda 4 dersten oluşur.

Sayılar olarak alt kümeler

n öğenin her alt kümesi tek bir tam sayıyla eşleştirilebilir. 0'dan başlayarak sayın; her sayının bitleri, hangi öğelerin dahil edildiğini tam olarak belirler. 🙂

Kaç alt küme vardır

n öğeden oluşan bir kümenin 2^n alt kümesi vardır. Bu nedenle bir tamsayıyı 0'dan 2^n eksi 1'e kadar döndürmek, her alt kümeyi tam olarak bir kez ziyaret eder.

for mask in range(1 << n):
    pass  # mask is one subset

1 << n Sayıyı Verir

1 << n ötelemesi, 2 üzeri n'e eşittir. Alt küme döngünüzün üst sınırını yazmanın temiz ve hızlı yoludur.

i Bitini Okuyun

i öğesinin alt kümede olup olmadığını öğrenmek için maskeyi ve i kadar sola kaydırılmış 1'i kullanarak bit değerini sınayın. Sıfır olmayan bir sonuç, öğenin dahil edildiği anlamına gelir.

if mask & (1 << i):
    take(items[i])

Seçilen Listeyi Oluşturun

Her bit konumunu inceleyin ve bit değeri ayarlanmış olan öğeleri toplayın. Böylece tek bir maske, temsil ettiği somut alt kümeye dönüşür.

chosen = [items[i] for i in range(n) if mask & (1 << i)]

Boş ve Tam Kümeler

Maske 0, boş alt kümedir; tüm bitleri 1 olan maske ise tam kümedir. Döngünüz her değeri kapsadığı için ikisi de kendiliğinden elde edilir.

Bir Alt Kümenin Toplamını Alın

Döngünün içinde seçilen öğeleri toplayarak her alt kümeye puan verin. Bu, birçok küçük kaba kuvvet çözümünün temelidir.

total = sum(v[i] for i in range(n) if mask & (1 << i))

Ayarlanmış Bitleri Sayın

Seçilen öğelerin sayısı, maskede 1 olan bitlerin sayısına eşittir. Python'da bin(mask).count('1') bunu anında verir.

size = bin(mask).count("1")

Sınırı Gözetin

2^n alt küme bulunduğundan bu teknik yalnızca küçük n değerleri için uygundur. Tümünü listelemek için n'nin yaklaşık 20 olması, pratikteki üst sınırdır.

Bit Maskeleri Neden Avantajlıdır

Tek bir tamsayı döngüsü, karmaşık iç içe döngülerin yerini alır ve bit işlemleri hızlıdır. Kod kısa, anlaşılır ve sınanması kolay kalır.

Tekrar Kullanılabilir Bir Örüntü

Maskeyi döndürün, bitlerini çözümleyin, alt kümeye puan verin ve en iyiyi izleyin. Bu şablonu ezberlerseniz birçok alt küme problemi rutin hâle gelir.

Hızlı Kontrol

mask ile kodlanan alt kümeye i öğesinin dahil edilip edilmediğini sınamak istiyorsunuz.

Özet

Bir maskeyi 0'dan 2^n eksi 1'e kadar döndürün, bitleri maske ile sola kaydırılmış 1'i kullanarak okuyun ve her alt kümeye puan verin. Bu, küçük n değerleri için temiz bir kaba kuvvet yöntemidir. 🚀

Sıkça Sorulan Sorular

“Bitmask Alt Küme Numaralandırması” dersi ücretsiz mi?

Evet — “Bitmask Alt Küme Numaralandırması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Coding Interview Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Coding Interview Prep kursu toplamda 4 dersten oluşur.

“Bitmask Alt Küme Numaralandırması” dersinde ne öğreneceğim?

Tüm alt kümeler üzerinde tam sayılarla dolaşın. Coding Interview Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Coding Interview Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Coding Interview Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Bitmask Alt Küme Numaralandırması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Coding Interview Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Coding Interview Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Kaba Kuvvet Geçerli Bir Stratejidir
  2. itertools ile Numaralandırma
  3. Bitmask Alt Küme Numaralandırması
  4. Arama Alanını Akıllıca Daraltma
← Coding Interview Prep Sayfasına Dön