Khi làm việc về vấn đề liên quan đến Giả thuyết Weisstein (https://cs.uwaterloo.ca/journals/JIS/VOL7/Sloane/sloane15.pdf), tôi cần tạo tất cả n x n (0,1) ma trận cho n = 2, 3, 4, ... Không quá khó nếu bạn suy nghĩ về trình tự nhị phân phù hợp và phân vùng chúng tương ứng. Ví dụ, đây là tất cả các ma trận 3 x 3:Tạo tất cả (0,1) ma trận nxn
With[{n = 3},
lis = PadLeft[IntegerDigits[#, 2], n^2]& /@ Range[0, 2^n^2 - 1];
mats = (Partition[#, n] &) /@ lis
];
Conjecture Weisstein của liên quan đến, đối với mỗi n = 2, 3, ..., đếm số lượng ma trận mà giá trị riêng là tất cả thực và tích cực. Đối với n = 2, có 3; cho n = 3, có 25; cho n = 4, có 543; và vân vân. Các tính toán eigenvalue tốn thời gian nhưng đơn giản.
Điều tôi quan tâm là tìm các cách khác để liệt kê các ma trận n x n. Để có được tất cả chúng tôi đã sử dụng các đại diện cơ số 2 của các số nguyên lên đến 2^(n^2) và được phân đoạn để tạo các ma trận. Phải có cách khác (hiệu quả hơn?).
Có thể phù hợp hơn với [cstheory] (http://cstheory.stackexchange.com), mặc dù chúng có thể đánh hơi mũi của chúng ở đó vì quá cơ bản .. =^_^= –