39 lines
1.4 KiB
Text
39 lines
1.4 KiB
Text
INSTALL @lib$ + "ARRAYLIB"
|
|
|
|
REM Describe the puzzle as a set of simultaneous equations:
|
|
REM a + b = 151
|
|
REM a - c = 40
|
|
REM -b + c + d = 0
|
|
REM e + f = 40
|
|
REM -c + f + g = 0
|
|
REM -d + g + h = 0
|
|
REM e - x = 11
|
|
REM f - y = 11
|
|
REM g - y = 4
|
|
REM h - z = 4
|
|
REM x - y + z = 0
|
|
REM So we have 11 equations in 11 unknowns.
|
|
|
|
REM We can represent these equations as a matrix and a vector:
|
|
DIM matrix(10,10), vector(10)
|
|
matrix() = \ a, b, c, d, e, f, g, h, x, y, z
|
|
\ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, \
|
|
\ 1, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, \
|
|
\ 0,-1, 1, 1, 0, 0, 0, 0, 0, 0, 0, \
|
|
\ 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, \
|
|
\ 0, 0,-1, 0, 0, 1, 1, 0, 0, 0, 0, \
|
|
\ 0, 0, 0,-1, 0, 0, 1, 1, 0, 0, 0, \
|
|
\ 0, 0, 0, 0, 1, 0, 0, 0,-1, 0, 0, \
|
|
\ 0, 0, 0, 0, 0, 1, 0, 0, 0,-1, 0, \
|
|
\ 0, 0, 0, 0, 0, 0, 1, 0, 0,-1, 0, \
|
|
\ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,-1, \
|
|
\ 0, 0, 0, 0, 0, 0, 0, 0, 1,-1, 1
|
|
vector() = 151, 40, 0, 40, 0, 0, 11, 11, 4, 4, 0
|
|
|
|
REM Now solve the simultaneous equations:
|
|
PROC_invert(matrix())
|
|
vector() = matrix().vector()
|
|
|
|
PRINT "X = " ; vector(8)
|
|
PRINT "Y = " ; vector(9)
|
|
PRINT "Z = " ; vector(10)
|