Julia, 12
I do a random search for nxn
-matrices of the form
a b b b . . . b
b a b b .
b b a b .
b b b a .
. . .
. . .
. a b
b . . . . . b a
fulfilling the criteria. As these are full, I can make block-matrices out of two of them to get a half-filled solution.
using Random, LinearAlgebra
check(a1, a2, b1, b2, n, base) = a2 != 0 && a1*b1*n + a2*b1 + b2*a1 == base*a1 + b1 && a1*b1*n + a2*b1 + b2*a1 + a2*b2 == base*(a1 +a2) + b1 + b2
function generate(base=10)
while true
a1 = rand(1:base-1)
b1 = rand(1:base-1)
a2 = rand(-a1+1:base-1-a1)
b2 = rand(-b1+1:base-1-b1)
n = rand(1:10)
if check(a1, a2, b1, b2, n, base)
return a1*ones(Int, n, n) + a2*I, b1*ones(Int, n, n) + b2*I
end
end
end
nosp(A) = sum(A .== 0) <= size(A,1)*size(A,2)/2
fake(A, B) = rank(A) > 0 && rank(B) > 0 && nosp(A) && nosp(B) && A*B == 10*A + B
Random.seed!(333333333333); A1, B1 = generate()
A2, B2 = generate()
A = [A1 0I; 0I A2]
B =[B1 0I; 0I B2]
fake(A2, B2)
1 2 2 2 2 2 0 0 0 0 0 0
2 1 2 2 2 2 0 0 0 0 0 0
2 2 1 2 2 2 0 0 0 0 0 0
2 2 2 1 2 2 0 0 0 0 0 0
2 2 2 2 1 2 0 0 0 0 0 0
2 2 2 2 2 1 0 0 0 0 0 0
0 0 0 0 0 0 1 2 2 2 2 2
0 0 0 0 0 0 2 1 2 2 2 2
0 0 0 0 0 0 2 2 1 2 2 2
0 0 0 0 0 0 2 2 2 1 2 2
0 0 0 0 0 0 2 2 2 2 1 2
0 0 0 0 0 0 2 2 2 2 2 1
6 1 1 1 1 1 0 0 0 0 0 0
1 6 1 1 1 1 0 0 0 0 0 0
1 1 6 1 1 1 0 0 0 0 0 0
1 1 1 6 1 1 0 0 0 0 0 0
1 1 1 1 6 1 0 0 0 0 0 0
1 1 1 1 1 6 0 0 0 0 0 0
0 0 0 0 0 0 6 1 1 1 1 1
0 0 0 0 0 0 1 6 1 1 1 1
0 0 0 0 0 0 1 1 6 1 1 1
0 0 0 0 0 0 1 1 1 6 1 1
0 0 0 0 0 0 1 1 1 1 6 1
0 0 0 0 0 0 1 1 1 1 1 6
There are not too many of them but more than ten distributed over the dimensions for base 10.