forked from kalmar/DALGLI0
input z lini poleceń
This commit is contained in:
parent
1d1b6f026a
commit
3feef9f4af
139
zad2.py
139
zad2.py
@ -1,68 +1,71 @@
|
|||||||
def modulo(x,n):
|
import sys
|
||||||
for i in range(len(x)):
|
import ast
|
||||||
x[i] = x[i] % n
|
|
||||||
return x
|
def modulo(x,n):
|
||||||
|
for i in range(len(x)):
|
||||||
def iloczyn(f,g,n):
|
x[i] = x[i] % n
|
||||||
wynik = [0]*(len(f)+len(g)-1)
|
return x
|
||||||
for i in range(len(f)):
|
|
||||||
for j in range(len(g)):
|
def iloczyn(f,g,n):
|
||||||
wynik[i+j] += f[i]*g[j]
|
wynik = [0]*(len(f)+len(g)-1)
|
||||||
return modulo(wynik,n)
|
for i in range(len(f)):
|
||||||
|
for j in range(len(g)):
|
||||||
def liczmod(a,x,n):
|
wynik[i+j] += f[i]*g[j]
|
||||||
for i in range(n):
|
return modulo(wynik,n)
|
||||||
if( (a*i) % n == x):
|
|
||||||
return(i)
|
def liczmod(a,x,n):
|
||||||
return(-1)
|
for i in range(n):
|
||||||
|
if( (a*i) % n == x):
|
||||||
def sumujmod(a,b,n):
|
return(i)
|
||||||
if(len(a) < len(b)):
|
return(-1)
|
||||||
wynik = b
|
|
||||||
for i in range(len(a)):
|
def sumujmod(a,b,n):
|
||||||
wynik[i] += a[i]
|
if(len(a) < len(b)):
|
||||||
else:
|
wynik = b
|
||||||
wynik = a
|
for i in range(len(a)):
|
||||||
for i in range(len(b)):
|
wynik[i] += a[i]
|
||||||
wynik[i] += b[i]
|
else:
|
||||||
return modulo(wynik,n)
|
wynik = a
|
||||||
|
for i in range(len(b)):
|
||||||
def redukcjazer(x):
|
wynik[i] += b[i]
|
||||||
while x and x[-1] is 0:
|
return modulo(wynik,n)
|
||||||
x.pop()
|
|
||||||
return(x)
|
def redukcjazer(x):
|
||||||
|
while x and x[-1] is 0:
|
||||||
def klasaReszt(f,g,n):
|
x.pop()
|
||||||
wynik = f
|
return(x)
|
||||||
mnoznik = [0] * (len(f)-len(g)+2)
|
|
||||||
for i in range(len(f)):
|
def klasaReszt(f,g,n):
|
||||||
if(liczmod(g[len(g)-1],wynik[len(f)-1-i],n) == -1):
|
wynik = f
|
||||||
return("DivisionError")
|
mnoznik = [0] * (len(f)-len(g)+2)
|
||||||
if(i > len(f)-len(g)):
|
for i in range(len(f)):
|
||||||
return redukcjazer(modulo(wynik,n))
|
if(liczmod(g[len(g)-1],wynik[len(f)-1-i],n) == -1):
|
||||||
else:
|
return("DivisionError")
|
||||||
mnoznik.pop()
|
if(i > len(f)-len(g)):
|
||||||
mnoznik.pop()
|
return redukcjazer(modulo(wynik,n))
|
||||||
mnoznik.append(-1*liczmod(g[len(g)-1],wynik[len(f)-1-i],n))
|
else:
|
||||||
wynik = sumujmod(wynik, iloczyn(g, mnoznik ,n) ,n)
|
mnoznik.pop()
|
||||||
|
mnoznik.pop()
|
||||||
def nwd(a,b,n):
|
mnoznik.append(-1*liczmod(g[len(g)-1],wynik[len(f)-1-i],n))
|
||||||
while(b != []):
|
wynik = sumujmod(wynik, iloczyn(g, mnoznik ,n) ,n)
|
||||||
if(klasaReszt(a,b,n)):
|
|
||||||
return "DivisionError"
|
def nwd(a,b,n):
|
||||||
c = klasaReszt(a,b,n)
|
while(b != []):
|
||||||
a = b
|
if(klasaReszt(a,b,n)):
|
||||||
b = c
|
return "DivisionError"
|
||||||
return modulo(a,n)
|
c = klasaReszt(a,b,n)
|
||||||
|
a = b
|
||||||
def main():
|
b = c
|
||||||
n = int(input("Podaj n: "))
|
return modulo(a,n)
|
||||||
print("R[x] dla R = Z/"+str(n))
|
|
||||||
f = eval(input("Podaj f w formacie listy np: [1,1, 0,1]: "))
|
def main():
|
||||||
g = eval(input("Podaj f w formacie listy np: [1, 1,0,1]: "))
|
n = int(sys.argv[1])
|
||||||
print(iloczyn(f,g,n))
|
f = ast.literal_eval(sys.argv[2])
|
||||||
print(klasaReszt(f,g,n))
|
g = ast.literal_eval(sys.argv[3])
|
||||||
print(nwd(f,g,n))
|
|
||||||
|
print(iloczyn(f,g,n))
|
||||||
if __name__ == "__main__":
|
print(klasaReszt(f,g,n))
|
||||||
main()
|
print(nwd(f,g,n))
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
Loading…
Reference in New Issue
Block a user