thể trùng lặp:
Creating multiple numbers with certain number of bits setBitwise thay đổi để tạo ra tất cả các hoán vị có thể trong C
Tôi đang cố gắng để viết một số mã mà sẽ đưa từng kết hợp có thể có của các số trong một mảng bằng chuyển bit qua.
Ví dụ, tôi muốn tìm tất cả kết hợp có thể có của 3 bit (nơi tối đa một chữ số có thể được 6) mảng nên chứa:
000111 001011 001101 001110 010011 010101 010110 011001 011010 011100 100011
Và vân vân ...
Từ những gì tôi đã giải thích, khi bit vị trí cuối cùng là 1, chúng tôi thay đổi số bằng 1 (x >> 1) và thêm 1 ở đầu. Tuy nhiên, tôi không chắc chắn làm thế nào để mã phần còn lại. Tôi đang sử dụng C để viết này. Ngoài ra - theo như tôi có thể nói đây là một chuỗi colex, tuy nhiên, tôi là tất cả các tai nếu có một chuỗi khác sẽ cho tôi kết quả cuối cùng (mảng với tất cả các kết hợp k-bit có thể có với một ràng buộc của N).
Ghép [Tạo nhiều số với số bit nhất định được đặt] (http://stackoverflow.com/questions/506807/creating-multiple-numbers-with-certain-number-of-bits-set), [Tạo tất cả các chuỗi nhị phân có độ dài n với bit k được đặt] (http://stackoverflow.com/questions/1851134/generate-all-binary-strings-of-length-n-with-k-bits-set). – outis