public void UpdateTask(Math.Trio newABC, int Mode, bool isActive) { string stringA = ToString(newABC.A, "A"); string stringB = ToString(newABC.B, "B"); string stringC = newABC.C.ToString(); if (newABC.C == 0) { stringC = "C"; } if (Mode == 1) { Task.text = stringC + " = " + stringA + "k² + " + stringB + "l²"; } else if (Mode == 2) { Task.text = stringC + " = " + stringA + "k₁² + " + stringB + "l₁²"; } if (!newABC.HasEmpty()) { FindParameters(newABC.A, newABC.B, newABC.C, Mode, isActive); hasAnswers = true; } }
public void UpdateTask(Math.Trio newABC) { switch (Algorithm) { case 1: Condition12.gameObject.SetActive(false); Condition13.gameObject.SetActive(false); Condition11.UpdateTask(newABC, 1, true); Condition11.SetActive(true); break; case 2: Condition12.gameObject.SetActive(false); Condition13.gameObject.SetActive(false); Condition11.UpdateTask(newABC, 2, true); Condition11.SetActive(true); break; case 3: Condition12.gameObject.SetActive(true); Condition13.gameObject.SetActive(true); Condition11.UpdateTask(newABC, 1, true); Condition11.SetActive(true); Condition12.UpdateTask(newABC, false); Condition12.SetActive(false); Condition13.UpdateTask(newABC, false); Condition13.SetActive(false); break; } }
public void GetAnswer(int Algorithm, int r, Math.Trio ABC, Math.Pair Var1, Math.Pair Var2, Math.Pair MN) { Clear(); switch (Algorithm) { case 1: PrintAnswer(Algorithm1(r, ABC.A, ABC.B, ABC.C, Var1.a, Var1.b, Var2.a, Var2.b, MN.a, MN.b), true, r); break; case 2: if (Var1 != null) { PrintAnswer(Algorithm21(r, ABC.A, ABC.B, ABC.C, Var1.a, Var1.b, MN.a, MN.b), false, r); } if (Var2 != null) { PrintAnswer(Algorithm22(r, ABC.A, ABC.B, ABC.C, Var2.a, Var2.b, MN.a, MN.b), false, r); } break; case 3: PrintAnswer(Algorithm3(r, ABC.A, ABC.B, ABC.C, Var1.a, Var1.b, Var2.a, Var2.b, MN.a, MN.b), true, r); break; } }
Math.Trio Algorithm21(int r, int A, int B, int C, int K, int L, int m, int n) { Math.Trio answer = new Math.Trio(); int Part1 = 0, Part2 = 0; for (int i = 0; i <= (r - 1) / 2; i++) { int sign = Math.Pow(-1, i); int CMN = Math.C(r, 2 * i + 1); int PowAB = Math.Pow(A * B, (r - i * 2 - 1) / 2); int PowM = Math.Pow(m, r - 2 * i - 1); int PowN = Math.Pow(n, 2 * i + 1); Part1 += sign * CMN * PowAB * PowM * PowN; } for (int i = 0; i <= (r - 1) / 2; i++) { int sign = Math.Pow(-1, i); int CMN = Math.C(r, 2 * i); int PowAB = Math.Pow(A * B, (r - i * 2 - 1) / 2); int PowM = Math.Pow(m, r - 2 * i); int PowN = Math.Pow(n, 2 * i); Part2 += sign * CMN * PowAB * PowM * PowN; } answer.A = K * Part1 + B * L * Part2; // x answer.B = A * K * Part2 - L * Part1; // y answer.C = A * B * Math.Pow(m, 2) + Math.Pow(n, 2); // z return(answer); }
Math.Trio Algorithm3(int r, int A, int B, int C, int K, int L, int Y, int b, int m, int n) { Math.Trio answer = new Math.Trio(); print(2 * C * K * m * n); if (GameObject.Find("Сondition11").GetComponentInChildren <Text>().color == new Color32(39, 39, 39, 255)) { answer.A = (K * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) - 2 * B * L * m * n); answer.B = (L * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) + 2 * A * K * m * n); answer.C = Y * Math.Pow(m, 2) + b * Math.Pow(n, 2); } else if (GameObject.Find("Сondition12").GetComponentInChildren <Text>().color == new Color32(39, 39, 39, 255)) { answer.C = (K * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) + 2 * B * L * m * n); answer.B = (L * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) + 2 * C * K * m * n); answer.A = Y * Math.Pow(m, 2) + b * Math.Pow(n, 2); } else { answer.C = (K * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) + 2 * A * L * m * n); answer.A = (L * (Y * Math.Pow(m, 2) - b * Math.Pow(n, 2)) + 2 * C * K * m * n); answer.B = Y * Math.Pow(m, 2) + b * Math.Pow(n, 2); } return(answer); }
public void UpdateTask(int newR, Math.Trio newABC) { string stringR = newR.ToString(); if (newR == 0) { stringR = "r"; } string stringA = ToString(newABC.A, "A"); string stringB = ToString(newABC.B, "B"); string stringC = ToString(newABC.C, "C"); C.text = stringC + "z"; r.text = stringR; AB.text = " = " + stringA + "x² + " + stringB + "y²"; }
void PrintAnswer(Math.Trio answer, bool isRPair, int r) { string sign = ""; if (isRPair) { sign = "±"; } AnswerText.text += "\nx = ±" + Mathf.Abs(answer.A) + "\t\ty = ±" + Mathf.Abs(answer.B) + "\t\tz = " + sign + answer.C; if (r % 2 == 0 && r != 2) { AnswerText.text += "\nThe non-trivial solutions exist.\nFor finding them the recurrent formulas are used"; } }
Math.Trio Algorithm22(int r, int A, int B, int C, int K, int L, int m, int n) { Math.Trio answer = new Math.Trio(); int Part1 = 0, Part2 = 0; for (int i = 0; i <= (r - 1) / 2; i++) { int sign = Math.Pow(-1, i); int CMN = Math.C(r, 2 * i + 1); int PowA = Math.Pow(A, (r - i * 2 - 1) / 2); int PowM = Math.Pow(m, r - 2 * i - 1); int PowB = Math.Pow(B, i); int PowN = Math.Pow(n, 2 * i + 1); Part1 += sign * CMN * PowA * PowM * PowB * PowN; } for (int i = 0; i <= (r - 1) / 2; i++) { int sign = Math.Pow(-1, i); int CMN = Math.C(r, 2 * i); int PowA = Math.Pow(A, (r - i * 2 - 1) / 2); int PowM = Math.Pow(m, r - 2 * i); int PowB = Math.Pow(B, i); int PowN = Math.Pow(n, 2 * i); Part2 += sign * CMN * PowA * PowM * PowB * PowN; } print("hello"); answer.A = B * K * Part1 + L * Part2; // x answer.B = A * K * Part2 - L * Part1; // y answer.C = A * Math.Pow(m, 2) + B * Math.Pow(n, 2); // z if (GameObject.Find("Canvas/Scroll View/Viewport/Panel/Condition2").GetComponent <Condition2>().ZMultC) { answer.C *= C; } return(answer); }
Math.Trio Algorithm1(int r, int A, int B, int C, int K, int L, int Y, int b, int m, int n) { Math.Trio answer = new Math.Trio(); int Part1 = 0, Part2 = 0; for (int i = 0; i <= r; i += 2) { int sign = Math.Pow(-1, i / 2); int CMN = Math.C(r, i); int PowY = Math.Pow(Y, (r - i) / 2); int Powb = Math.Pow(b, i / 2); int PowM = Math.Pow(m, r - i); int PowN = Math.Pow(n, i); Part1 += sign * CMN * PowY * Powb * PowM * PowN; } for (int i = 0; i < r; i += 2) { int sign = Math.Pow(-1, i / 2); int CMN = Math.C(r, i + 1); int PowY = Math.Pow(Y, (r - i - 2) / 2); int Powb = Math.Pow(b, i / 2); int PowM = Math.Pow(m, r - i - 1); int PowN = Math.Pow(n, i + 1); Part2 += sign * CMN * PowY * Powb * PowM * PowN; } answer.A = K * Part1 - B * L * Part2; // x answer.B = A * K * Part2 + L * Part1; // y answer.C = Y * Math.Pow(m, 2) + b * Math.Pow(n, 2); // z return(answer); }
public void UpdateTask(Math.Trio newABC, int Mode) { string stringAB; if (newABC.A == 0 && newABC.B == 0) { stringAB = "AB"; } else if (newABC.A == 0) { stringAB = ToString(newABC.B, "B") + "A"; } else if (newABC.B == 0) { stringAB = ToString(newABC.A, "A") + "B"; } else { stringAB = ToString(newABC.A * newABC.B, "AB"); } string stringBC; if (newABC.B == 0 && newABC.C == 0) { stringBC = "BC"; } else if (newABC.B == 0) { stringBC = ToString(newABC.B, "B") + "C"; } else if (newABC.C == 0) { stringBC = ToString(newABC.C, "C") + "B"; } else { stringBC = ToString(newABC.B * newABC.C, "BC"); } string stringAC; if (newABC.A == 0 && newABC.C == 0) { stringAC = "AC"; } else if (newABC.A == 0) { stringAC = ToString(newABC.A, "A") + "C"; } else if (newABC.C == 0) { stringAC = ToString(newABC.C, "C") + "A"; } else { stringAC = ToString(newABC.A * newABC.C, "AC"); } switch (Mode) { case 1: if (!newABC.HasEmpty()) { FindParameters1(newABC.A * newABC.B, Mode, false); Task1(stringAB); } break; case 2: string stringC = newABC.C.ToString(); if (newABC.C == 0) { stringC = "C"; } Task2(stringAB, stringC); if (!newABC.HasEmpty()) { FindParameters2(newABC.A * newABC.B, newABC.C, Mode); } break; case 32: Task32(stringBC); if (!newABC.HasEmpty()) { FindParameters1(newABC.B * newABC.C, 1, true); } break; case 33: Task33(stringAC); if (!newABC.HasEmpty()) { FindParameters1(newABC.A * newABC.C, 1, true); } break; } }
void Start() { ABC = new Math.Trio(); MN = new Math.Pair(); }