Module: Belirli bir maskenin tüm alt modellerini yineleyin


Problem

1 /7


Belirli uzunluktaki ikili diziler

Theory Click to read/hide

Belirli bir uzunluktaki tüm bit dizilerini numaralandırmak gerekli olur. Veya başka bir deyişle, her nesne için iki olası durumdan birinin seçildiği tüm olası seçenekleri yineleyin.

Bu gibi durumlarda, bit maskeleri kullanarak numaralandırma yapmak mümkündür. Bu yaklaşımın avantajı, bu tür bir kodun yinelemesiz çalışması ve koleksiyonlar veya benzerleri yerine sayılar üzerinde çalışmasıdır, bu da performansı büyük ölçüde artırır.

Bit maskelerini kullanan genel kod aşağıda verilmiştir: int; // onesne sayısı (bit dizisinin uzunluğu) for (int mask = 0; mask < (1 << n); mask++) { // 0'dan 2^n - 1'e kadar tüm sayılar arasında döngü yapın, burada her sayı bir bit maskesine karşılık gelir // geçerli sayı maskesi, i'inci bitin i'inci nesnenin durumunu belirttiği bir bit maskesidir for (int i = 0; i < n; i++) { // her nesnenin hangi duruma sahip olduğunu anlamak için n biti tekrarla if ((1
Bu kod O(2^n * f(n)) içinde çalışır, burada f(n), belirli bir yinelemeyi işlemeniz için geçen süredir.

Problem

Verilen N sayısı, sıfırlardan ve birlerden oluşan N uzunluğundaki tüm dizileri sözlük sırasına göre yazdırır.

Problemi çözerken, tüm alt kalıpların sıralanmasını kullanın.

Giriş

Tek sayı N verilir. (doğal, 1 ≤ N ≤ 10)

Çıktı

Sıfırlardan ve birlerden oluşan N uzunluğundaki tüm dizeleri, her satıra bir tane olacak şekilde sözlüksel sırayla yazdırmak gerekir

 
Giriş Çıktı
2
00
01
10
11