from itertools import combinations, permutations
import numpy as np

def gauss(a):
    arr = [r[:] for r in a]
    n, m = len(arr), len(arr[0])
    h, k = 0, 0
    while h < n and k < m:
        idx = next((i for i in range(h, n) if arr[i][k] != 0), None)
        if idx is None:
            k += 1
        else:
            arr[idx], arr[h] = arr[h], arr[idx]
            for i in range(h + 1, n):
                f = arr[i][k] / arr[h][k]
                arr[i][k] = 0
                for j in range(k + 1, m):
                    arr[i][j] -= arr[h][j] * f
            h += 1
            k += 1
    return arr
def solve(a):
    n, m = len(a), len(a[0])
    arr = gauss(a)  
    
    if not all(x == 0 for i in range(3, n) for x in arr[i]):
        return None
    arr = arr[:-3]
    sol = [None] * 3
    if arr[-1][-2] == 0:
        return None
    sol[-1] = arr[-1][-1] / arr[-1][-2]
    for i in range(1, -1, -1):
        if arr[i][i] == 0:
            return None
        sol[i] = (arr[i][-1] - sum(arr[i][j] * sol[j] for j in range(i + 1, 3))) / arr[i][i]
    return sol   
eqs = [[3,0,0],[0,3,0],[0,0,3],
      [1,2,0],[2,1,0],[1,0,2],[2,0,1],[0,1,2],[0,2,1],
      [1,1,1],
       [2, 0, 0],[0,2,0],[0,0,2],
       [1, 1, 0],[0, 1, 1], [1, 0, 1],
       [1, 0,0],[0,1,0],[0,0,1]
      
      ]
# eqs = [[3,0,0],[1,1, 0],[2,1,0],[2,0,1],[1,1,1], [0,2,1]]
ns = (3,11,12,102,111,120)
n = len(ns)
for p in permutations(eqs, r=n):
    A = [p[i]+[ns[i]] for i in range(n)]
    r = solve(A)
    if r is not None:
        print(r)


Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: