Number of Matrices having determinant 1 $S$ is collection of $ 3 \times 3 $ Matrices with entries $0$ and $1$ real numbers. It is to be proved that number of Matrices in $S$ having determinant exactly $1$ is equal to the number of Matrices having determinant $-1$. How the bijection from these subsets of $S$ can be defined? Precisely a bijection from $S_1$ and $S_2$ is to be defined where $S_1$  is the set of Matrices in $S$ having determinant exactly $1$ and $S_2$  is the set of Matrices in $S$ having determinant exactly $-1$. Would mapping diagonal elements to anti diagonal elements work? This works for identity matrix.
 A: Hint: When you swap 2 rows of a matrix, their determinants are negative of each other.
Hint: When 2 rows of a matrix are identical, the determinant is 0.
Hence, we can create the bijection. 
A: By Laplace expansion:
$$\begin{vmatrix}a_{11}&a_{12}&a_{13}\\ a_{21}&a_{22}&a_{23}\\ a_{31}&a_{32}&a_{33} 
\end{vmatrix}=
a_{11}\begin{vmatrix}a_{22}&a_{23}\\ a_{32}&a_{33}
\end{vmatrix}-
a_{21}\begin{vmatrix}a_{12}&a_{13}\\ a_{32}&a_{33}
\end{vmatrix}+
a_{31}\begin{vmatrix}a_{12}&a_{13}\\ a_{22}&a_{23}
\end{vmatrix}\\
$$
Each $2\times 2$ determinant can be $-1,0$ or $1$. So can each term. The suitable cases are:
$$1) \ 0-0+1\\
2) \ 1-0+0\\
3) \ 1-1+1\\
4) \ -1+1+1\\
5) \ 1+1-1
$$
For case 1:
$$a_{31}=a_{12}=a_{23}=1, \ a_{13}\cdot a_{22}=0$$ 
Then, the determinant is $-1$ when:
$$a_{31}=a_{13}=a_{22}=1, \ a_{12}\cdot a_{23}=0$$
All other elements will be the same for both determinants $1$ and $-1$.
The other cases are considered similarly.
A: Well, it turns out you can also do things like $ \begin{vmatrix} 1 & 1 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \\ \end{vmatrix} $ with determinant 1.
So I wrote a short program to calculate the totals.  I get:
count(determinant = -2) = 3
count(determinant = -1) = 84
count(determinant = 0) = 338
count(determinant = 1) = 84
count(determinant = 2) = 3
overall count = 512

Proof by enumeration.  :-)  I won't try to list them here.
The program reads:
#include <stdio.h>

main()
{
    enum { BIAS=10 };
    enum { COUNTS=BIAS*2+1 };
    int counts[COUNTS];
    int count = 0;
    for (int i=0; i<COUNTS; i++) counts[i] = 0;

    for (int a1 = 0; a1<2; a1++) {
    for (int a2 = 0; a2<2; a2++) {
    for (int a3 = 0; a3<2; a3++) {

    for (int b1 = 0; b1<2; b1++) {
    for (int b2 = 0; b2<2; b2++) {
    for (int b3 = 0; b3<2; b3++) {

    for (int c1 = 0; c1<2; c1++) {
    for (int c2 = 0; c2<2; c2++) {
    for (int c3 = 0; c3<2; c3++) {

    int d = a1*b2*c3 - a1*b3*c2 - a2*b1*c3 + a2*b3*c1 + a3*b1*c2 - a3*b2*c1;

    counts[d+BIAS]++;
    count++;

    } } }
    } } }
    } } }

    for (int i=0; i<COUNTS; i++) 
    if (counts[i]) 
        printf("count(determinant = %d) = %d\n", i-BIAS, counts[i]);
    printf("overall count = %d\n", count);
}

