Đôi khi tôi muốn thực hiện một thử nghiệm chính xác bằng cách kiểm tra tất cả các kết hợp dữ liệu có thể có để xây dựng phân phối theo kinh nghiệm mà tôi có thể kiểm tra sự khác biệt quan sát được giữa các phương tiện. Để tìm các kết hợp có thể, tôi thường sử dụng chức năng kết hợp. Hàm select có thể cho tôi biết có bao nhiêu kết hợp có thể có. Rất dễ dàng để số lượng kết hợp trở nên lớn đến mức không thể lưu trữ kết quả của hàm combn, ví dụ: combn (28,14) yêu cầu vectơ 2.1 Gb. Vì vậy, tôi đã thử viết một đối tượng bước qua logic tương tự như hàm kết hợp để cung cấp các giá trị khỏi một "ngăn xếp" tưởng tượng tại một thời điểm. Tuy nhiên, phương pháp này (như tôi đã khởi tạo nó) dễ dàng chậm hơn 50 lần so với kết hợp ở các kích cỡ kết hợp hợp lý,
Có thuật toán nào tốt hơn để thực hiện loại điều này so với thuật toán được sử dụng trong combn không? Cụ thể có cách nào để tạo và kéo kết hợp Nth có thể mà không tính toán qua tất cả các kết hợp trước đó không?