Tôi hy vọng đây không phải là sự lừa đảo, nhưng thật khó để giải quyết vấn đề thành từ khóa!Thuật toán để lặp qua không gian mẫu số
Đây luôn là điều mà tôi đã tự hỏi. Giả sử bạn có một hộp đen mất n số nguyên làm đầu vào (trong đó n> 1). Cho rằng có một giới hạn về các giá trị số nguyên, làm thế nào bạn sẽ đi về viết một thuật toán sẽ đẩy toàn bộ không gian mẫu thông qua hộp đen? (Điểm thưởng nếu n có thể được quy định tại thời gian chạy)
nỗ lực của tôi khi n = 2 như sau:
int min = 0;
int max = 9;
int a = min;
int b = min;
while(a <= max && b <= max)
{
blackBox(a, b);
a++;
if(a > max)
{
a = min;
b++;
}
}
Đoạn mã trên là tốt cho hai biến, nhưng như bạn có thể đoán, tôi thuật toán trở nên thực sự xấu khi các phương pháp n tiếp cận hai chữ số.
Có cách nào tốt hơn để làm điều này ngoài làm tổ nếu các câu như tôi đã làm không?
Tôi biết một cách xấu để thực hiện, sẽ tạo ngẫu nhiên các giá trị cho mỗi lần lặp và lưu các yếu tố đầu vào của các lần lặp trước, do đó bạn không poke hộp đen với cùng một biến hai lần. Tuy nhiên, tôi đã hy vọng cho một phương pháp nhanh hơn khi va chạm thực sự làm tổn thương thời gian thực hiện khi số lượng cuộc gọi hộp đen duy nhất đến gần (tối đa - min + 1)^n
Nested vòng là một ý tưởng tốt! Tôi cho rằng tôi đã quan tâm đến cách tiếp cận nào sẽ thực hiện nếu bạn muốn chỉ định tại thời gian chạy số lượng các biến để lặp qua. Tôi sẽ lại từ câu hỏi của tôi, một chút để phản ánh điều đó. Ngoài ra, cảm ơn bạn đã sửa, tôi đã sửa câu hỏi của mình :) – Catchwa