testConditionNumer[n_] :=
Module[{pts, knots, paras, a, b, mat},
RandomSeed[10];
pts = RandomInteger[{1, 10}, {n, 2}];
With[{inter = Range[0, 1, 1/n]},
knots = {inter[[-4 ;; -2]] - 1, inter, inter[[2 ;; 4]] + 1} //
Flatten
];
paras = Range[0, 1, 1/n] // Most // N;
mat = Outer[BSplineBasis[{3, knots}, #2, #1] &, paras,
Range[0, (n - 1) + 3]]; {a, b} = Dimensions[mat];
mat = Take[mat, a, a] + PadRight[Take[mat, a, a - b], {a, a}];
LinearSolve[mat]
]