On the TFC Abuse(?) of Cruel Ship Review
Exceedingly rare phenomenon of me learning a concept in school and applying it to KTaNE, and not the other way around.
It is recommended to read up on Matrices if you are unfamilliar with the matrix terminology or need other explanations.
- Use the green/red buttons to cycle between 6 different ships (2 characters on the right).
- Note each of these ships and look up their ship ratings for each user on the Not Ship Review sheet.
- Here is the original manual showing all of the characters.
- Create a 6x6 matrix where...
- each row corresponds to a ship (in the same order on the module).
- and each column corresponds to a user in the order of Play, Megum, Rand, 1254, Boris, Ufo (in the same order on the sheet and module).
- Split this matrix into quadrants, each being 3x3. Multiply each quadrant matrix in reading order. Call the product Matrix A.
- Let Matrix B = A' * A
- Name the elements of B letters R through Z in reading order, and calculate:
- h3 = -1
- h2 = R+V+Z
- h1 = (V*Z - W*Y + R*Z - T*X + R*V - S*U) * -1
- h0 = det(B)
- Find the 3 roots of h3*x^3 + h2*x^2 + h1*x + h0 = 0
- (A root is defined as a value of x that makes the equation true).
- You may use polynomialRoot(h0,h1,h2,h3) to get the roots. Any close to 0 imaginary components should be discarded.
- Define the roots as λ₁, λ₂, and λ₃, where λ₁ ≥ λ₂ ≥ λ₃ ≥ 0 (all positive).
- Let Mi = B - λi * I. (Where I is the 3x3 identity matrix) Do the following for each M.
- Let r1 and r2 be the first and second rows of Mi respectively.
- (r1[1] refers to the first element of r1, same for the second [2] and third [3] element and r2)
- r1 = r1 / r1[1]
- r2 = r2 - r1 * r2[1]
- r2 = r2 / r2[2]
- r1 = r1 - r2 * r1[2]
- Let Vi = [-r1[3], -r2[3], 1] / hypot(r1[3], r2[3], 1)
- Or alternatively, Let Vi = [-r1[3], -r2[3], 1]. Then normalize Vi.