Vòng cổ k-ary có độ dài n là danh sách thứ tự chiều dài n có các mục được vẽ từ bảng chữ cái có độ dài k, là danh sách thứ tự từ điển đầu tiên trong một danh sách tất cả các danh sách chia sẻ thứ tự theo vòng quay.Thuật toán đơn giản để tạo dây chuyền trong Đề án?
Ví dụ: (1 2 3) và (1 3 2) là các dây chuyền có chiều dài 3 từ bảng chữ cái {1 2 3}.
Thông tin thêm: http://en.wikipedia.org/wiki/Necklace_(combinatorics)
Tôi muốn tạo ra những trong Scheme (hoặc một Lisp của sự lựa chọn của bạn). Tôi đã tìm thấy một số giấy tờ ...
Savage - Một thuật toán mới cho Generating Necklaces
Sawada - Tạo Vòng tay trong Liên tục Thời gian khấu hao
Sawada - Tạo Necklaces với chuỗi con Forbidden
... nhưng mã trình bày trong số đó là mờ đục với tôi. Chủ yếu là bởi vì họ dường như không đi qua trong bảng chữ cái hoặc chiều dài (n) mong muốn. Các thủ tục đề án tôi đang tìm kiếm là của các hình thức (dây chuyền n '(a b c ...)).
Tôi có thể tạo những thứ này đủ dễ dàng bằng cách tạo danh sách k^n đầu tiên và sau đó lọc ra các vòng quay. Nhưng bộ nhớ không hiệu quả khủng khiếp ...
Cảm ơn!
Danh sách chỉ có hai trong số 10 dây chuyền có thiếu sót đơn giản hay bạn muốn thứ gì đó ngoài dây chuyền? –