Exemplo n.º 1
0
    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;
        }
    }
Exemplo n.º 2
0
    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;
        }
    }
Exemplo n.º 3
0
    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;
        }
    }
Exemplo n.º 4
0
    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);
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
    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²";
    }
Exemplo n.º 7
0
    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";
        }
    }
Exemplo n.º 8
0
    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);
    }
Exemplo n.º 9
0
    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);
    }
Exemplo n.º 10
0
    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;
        }
    }
Exemplo n.º 11
0
 void Start()
 {
     ABC = new Math.Trio();
     MN  = new Math.Pair();
 }