Plik gotowy do kompilacji
This commit is contained in:
parent
42bc4ae122
commit
2c6b020848
46
MainApp.java
46
MainApp.java
@ -1,5 +1,3 @@
|
|||||||
//package com.madrakrystian.algebra;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringReader;
|
import java.io.StringReader;
|
||||||
@ -8,25 +6,6 @@ import java.util.Scanner;
|
|||||||
import java.util.Stack;
|
import java.util.Stack;
|
||||||
|
|
||||||
public class MainApp {
|
public class MainApp {
|
||||||
|
|
||||||
|
|
||||||
// Napisać program, który dla danego pierścienia współczynników R = ℤ/nℤ, n ∈ ℕ oraz wielomianów f,g ∈ R[x] zmiennej x znajdzie:
|
|
||||||
//
|
|
||||||
// iloczyn f⋅g ∈ R[x]
|
|
||||||
// klasę reszty f ∈ R[x]/(g)
|
|
||||||
// największy wspólny dzielnik nwd(f,g) korzystając z algorytmu Euklidesa.
|
|
||||||
//
|
|
||||||
// Uwaga: wielomiany są podawane jako ciąg współczynników od wyrazu wolnego, do współczynnika wiodącego.
|
|
||||||
//
|
|
||||||
// Termin: 07.06
|
|
||||||
// Przykłady:
|
|
||||||
//
|
|
||||||
// Input: 2, [1,1,1,0,1], [0,1,1] (i.e. f = 1 + x + x² + x⁴, g = x² + x)
|
|
||||||
// Output: [[0,1,0,0,1,1,1], [1,1], [1,1]]
|
|
||||||
//
|
|
||||||
// Input: 6, [2,1,0,2,1,3], [1,0,0,5]
|
|
||||||
// Output: [[3,1,0,5,0,1,4,5,5], [5,2,1], DivisionError]
|
|
||||||
|
|
||||||
|
|
||||||
// czytanie inputu z System.in
|
// czytanie inputu z System.in
|
||||||
static Scanner reader = new Scanner(System.in);
|
static Scanner reader = new Scanner(System.in);
|
||||||
@ -51,11 +30,7 @@ public class MainApp {
|
|||||||
|
|
||||||
char temp;
|
char temp;
|
||||||
|
|
||||||
//
|
input = args[0];
|
||||||
// poprawiony bardzo nieelegancki nowy input
|
|
||||||
//
|
|
||||||
|
|
||||||
input = reader.nextLine();
|
|
||||||
|
|
||||||
BufferedReader read = new BufferedReader(
|
BufferedReader read = new BufferedReader(
|
||||||
new StringReader(input));
|
new StringReader(input));
|
||||||
@ -120,7 +95,9 @@ public class MainApp {
|
|||||||
// 2.
|
// 2.
|
||||||
System.out.println("2. klasa reszty: ");
|
System.out.println("2. klasa reszty: ");
|
||||||
res = polynomialsDivide(polyOne,polyTwo,n);
|
res = polynomialsDivide(polyOne,polyTwo,n);
|
||||||
System.out.println(Arrays.toString(res));
|
if(res != null){
|
||||||
|
System.out.println(Arrays.toString(res));
|
||||||
|
}
|
||||||
|
|
||||||
// 3.
|
// 3.
|
||||||
System.out.println("3. nwd: ");
|
System.out.println("3. nwd: ");
|
||||||
@ -134,7 +111,7 @@ public class MainApp {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
//input(old)
|
//input
|
||||||
/*
|
/*
|
||||||
do{
|
do{
|
||||||
System.out.println("Podaj n: ");
|
System.out.println("Podaj n: ");
|
||||||
@ -276,6 +253,11 @@ public class MainApp {
|
|||||||
//2. Dzielenie wielomianow
|
//2. Dzielenie wielomianow
|
||||||
public static int[] polynomialsDivide(int polyOne[], int polyTwo[], int mod) {
|
public static int[] polynomialsDivide(int polyOne[], int polyTwo[], int mod) {
|
||||||
|
|
||||||
|
if(polyOne.length < polyTwo.length) {
|
||||||
|
System.out.println("Division error");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// druga tablica ale z rowna liczba indeksow co pierwsza
|
// druga tablica ale z rowna liczba indeksow co pierwsza
|
||||||
int[] tempTab = new int[polyOne.length];
|
int[] tempTab = new int[polyOne.length];
|
||||||
// output
|
// output
|
||||||
@ -334,10 +316,16 @@ public class MainApp {
|
|||||||
|
|
||||||
// 3.
|
// 3.
|
||||||
public static int[] nwd(int polyOne[], int polyTwo[], int mod) {
|
public static int[] nwd(int polyOne[], int polyTwo[], int mod) {
|
||||||
|
|
||||||
if(polyTwo.length == 0) {
|
if(polyTwo.length == 0) {
|
||||||
return polyOne;
|
return polyOne;
|
||||||
}
|
}
|
||||||
return nwd(polyTwo, polynomialsDivide(polyOne,polyTwo,mod),mod);
|
if(polyOne.length >= polyTwo.length) {
|
||||||
|
return nwd(polyTwo, polynomialsDivide(polyOne,polyTwo,mod),mod);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return nwd(polyTwo, polynomialsDivide(polyTwo,polyOne,mod),mod);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user