forked from kalmar/DALGLI0
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
|
## Zadanie
|
|||
|
|
|||
|
Napisać program, który dla pierścienia `ℤ/nℤ[x]/(f = a₀ + a₁x¹+ ...+ aₖxᵏ)` znajdzie wszystkie
|
|||
|
|
|||
|
1. elementy odwracalne,
|
|||
|
2. dzielniki zera,
|
|||
|
3. elementy nilpotentne,
|
|||
|
4. elementy idempotentne.
|
|||
|
|
|||
|
- INPUT: `n [a₀,a₁,...,aₖ]`
|
|||
|
- OUTPUT: lista zawierająca cztery powyższe listy elementów (wielomianów, podanych jako listy współczynników)
|
|||
|
|
|||
|
### Przykłady:
|
|||
|
|
|||
|
1. `ℤ/2ℤ[x]/(x² + x + 1)`, który jest ciałem, tzn. `0` jest jedynym elementem nilpotentnym i jedynym dzielnikiem zera:
|
|||
|
* INPUT: `2 [1,1,1]`
|
|||
|
* OUTPUT:
|
|||
|
|
|||
|
```shell
|
|||
|
[
|
|||
|
[[1], [0,1], [0,1], [1,1]], # odwracalne
|
|||
|
[[0]], # dzielniki zera
|
|||
|
[[0]], # nilpotenty
|
|||
|
[[1]] # idempotenty
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
1. `ℤ/5ℤ[x]/(2x³ + 2x² + x + 1)`
|
|||
|
* INPUT: `3, [1,1,2,2]`
|
|||
|
* OUTPUT:
|
|||
|
|
|||
|
```sh
|
|||
|
[
|
|||
|
[[1], [2], [0, 1], [0, 2], [0, 0, 1], [1, 0, 1], [2, 1, 1], [2, 2, 1], [0, 0, 2], [2, 0, 2], [1, 1, 2], [1, 2, 2]], # odwracalne
|
|||
|
[[0], [1, 1], [2, 1], [1, 2], [2, 2], [2, 0, 1], [0, 1, 1], [1, 1, 1], [0, 2, 1], [1, 2, 1], [1, 0, 2], [0, 1, 2], [2, 1, 2], [0, 2, 2], [2, 2, 2]], # dzielniki zera
|
|||
|
[[0], [2, 0, 1], [1, 0, 2]], # nilpotenty
|
|||
|
[[0], [1], [1, 2, 1], [0, 1, 2]] # idempotenty
|
|||
|
]
|
|||
|
```
|
|||
|
|
|||
|
### Warunki punktacji
|
|||
|
* program musi być typu wsadowego, tj. uruchamiany z linii komend;
|
|||
|
* program musi się działać (i kompilować) na serwerze [LTS](https://laboratoria.wmi.amu.edu.pl/en/uslugi/serwer-terminalowy/lts)
|
|||
|
|
|||
|
UWAGA: **NIE** przyjmuję squashed pulls (z jednym commitem)
|
|||
|
|
|||
|
### Termin
|
|||
|
28.06.2018
|