From 49df0acf16f5bf4d0e66d827f08dafcbd8a048cf Mon Sep 17 00:00:00 2001 From: Peter Schaefer Date: Wed, 6 Jun 2012 07:58:36 +0200 Subject: [PATCH] [py] jacobi jacobi_tex --- UE/lib.py | 313 +++++++++++++++++++++++++++++---------------- UE/python/test.pdf | Bin 34167 -> 33716 bytes UE/python/test.tex | 14 +- 3 files changed, 208 insertions(+), 119 deletions(-) diff --git a/UE/lib.py b/UE/lib.py index 64a8c67..546b06d 100644 --- a/UE/lib.py +++ b/UE/lib.py @@ -1,112 +1,112 @@ import math # Berechnet die Summe aller vielfachen von base bis max -def summandial(m,base=1): - m = int(m/base)*base - return m*(m+base)/(2*base) +def summandial(m, base=1): + m = int(m / base) * base + return m * (m + base) / (2 * base) # Gibt die naechst kleine Fib zu max zurueck -def fib(m,a=1,b=2): +def fib(m, a=1, b=2): while b < m: - a,b = b,a+b + a, b = b, a + b return a # Gibt die Liste aller Fib zur naechst kleineren Fib von max zurueck -def fibV(m,a=[1,2]): +def fibV(m, a=[1, 2]): i = 1; while a[i] < m: - a.append(a[i] + a[i-1]) - i = i+1 + a.append(a[i] + a[i - 1]) + i = i + 1 return a # Gibt die Summe aller d-fachen Fib zu max zurueck (d=2) -def fibS(m,d=2): - a,b = 1,2 +def fibS(m, d=2): + a, b = 1, 2 s = 0 while b < m: - a,b = b,a+b - if a%d == 0: - s = s +a + a, b = b, a + b + if a % d == 0: + s = s + a return s # Gibt alle Primzahlen bis n zurueck def primes(n): if n < 2: return 0 - p = range(1,n+1,2) + p = range(1, n + 1, 2) q = len(p); p[0] = 2; - for k in range(3,int(n**.5+1),2): - if p[(k-1)/2]: - for i in range(((k*k-1)/2),q,k): + for k in range(3, int(n ** .5 + 1), 2): + if p[(k - 1) / 2]: + for i in range(((k * k - 1) / 2), q, k): p[i] = 0 - return filter(lambda x:x>0,p) + return filter(lambda x:x > 0, p) # Gibt alle Primfaktoren von n zurueck def factor(n): - if n<4: + if n < 4: return [n] - p = primes(int(n**.5+1)) + p = primes(int(n ** .5 + 1)) f = [] - while n>1: - p = filter(lambda x:n%x==0,p) - if(p==[]): + while n > 1: + p = filter(lambda x:n % x == 0, p) + if(p == []): f.append(n) break f[len(f):] = p - n = n/prod(p) + n = n / prod(p) f.sort() return f # Gibt alle Primfaktoren von n als vektor mit Vielfachheit zurueck def factorD(n): - if n<4: + if n < 4: return {n:1} - p = primes(int(n**.5+1)) + p = primes(int(n ** .5 + 1)) f = {} - while n>1: - p = filter(lambda x:n%x==0,p) - if(p==[]): + while n > 1: + p = filter(lambda x:n % x == 0, p) + if(p == []): f[n] = 1 break for i in range(len(p)): if(p[i] in f): - f[p[i]]=f[p[i]]+1 + f[p[i]] = f[p[i]] + 1 else: - f[p[i]]=1 - n = n/prod(p) + f[p[i]] = 1 + n = n / prod(p) # f.sort() return f # Multipliziert alle Werte aus Liste seq auf def prod(seq): - return reduce(lambda x,y:x*y, seq, 1) + return reduce(lambda x, y:x * y, seq, 1) # generiert Pyth tripel -def pythtrip(u,v): - return [u*u-v*v, 2*u*v, u*u+v*v] +def pythtrip(u, v): + return [u * u - v * v, 2 * u * v, u * u + v * v] #Binomial Koeffizient -def binomial(n,k): - return math.factorial(n)/(math.factorial(k)*math.factorial(n-k)) +def binomial(n, k): + return math.factorial(n) / (math.factorial(k) * math.factorial(n - k)) def ebinomial(seq): vek = [1, 0] for i in seq: - for j in range(len(vek)-1,0,-1): - vek[j] = vek[j]+vek[j-1]*i - vek[len(vek):]=[0] + for j in range(len(vek) - 1, 0, -1): + vek[j] = vek[j] + vek[j - 1] * i + vek[len(vek):] = [0] - return vek[:len(vek)-1] + return vek[:len(vek) - 1] #Anzahl der Teiler def divisors(num): test = factorD(num) - return sum(ebinomial(map(lambda x:test[x],test.keys()))[1:])+1 + return sum(ebinomial(map(lambda x:test[x], test.keys()))[1:]) + 1 #erweiterter Euklid -def euklid(a,b): +def euklid(a, b): if a < b: tmp = a a = b @@ -114,15 +114,15 @@ def euklid(a,b): x = [1, 0] y = [0, 1] q = a / b - while a%b: - [a ,b] = [b,a-q*b] - x = [x[1],x[0]-q*x[1]] - y = [y[1],y[0]-q*y[1]] - q = a/b - return [b,x[1],y[1]] + while a % b: + [a , b] = [b, a - q * b] + x = [x[1], x[0] - q * x[1]] + y = [y[1], y[0] - q * y[1]] + q = a / b + return [b, x[1], y[1]] #erweiterter Euklid mit TeX Ausgabe -def euklid_tex(a,b): +def euklid_tex(a, b): if a < b: tmp = a a = b @@ -132,120 +132,211 @@ def euklid_tex(a,b): q = int(a / b) print "\\begin{array}{ccccccc}" print " r_{i-2} & r_{i-1} & q_i & x_{i-2} & x_{i-1} & y_{i-2} & y_{i-1}\\\\\\hline" - print " ", a, "&" , b ,"&" , q,"&" ,x[0],"&",x[1] ,"&",y[0] ,"&" ,y[1],"\\\\" - while a%b: - [a ,b] = [b,a-q*b] - x = [x[1],x[0]-q*x[1]] - y = [y[1],y[0]-q*y[1]] - q = int(a/b) - if a%b: - print " ", a, "&" , b ,"&" , q,"&" ,x[0],"&",x[1] ,"&",y[0] ,"&" ,y[1],"\\\\" + print " ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\" + while a % b: + [a , b] = [b, a - q * b] + x = [x[1], x[0] - q * x[1]] + y = [y[1], y[0] - q * y[1]] + q = int(a / b) + if a % b: + print " ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\" else: print " \\cline{2-2}\\cline{5-5}\\cline{7-7}" print " \multicolumn{1}{l|}{", a, "}& \multicolumn{1}{l|}{" , b , - print "}&&\multicolumn{1}{l|}{" ,x[0],"}&\multicolumn{1}{l|}{",x[1] , - print "}&\multicolumn{1}{l|}{",y[0] ,"}&\multicolumn{1}{l|}{" ,y[1], "}\\\\" + print "}&&\multicolumn{1}{l|}{" , x[0], "}&\multicolumn{1}{l|}{", x[1] , + print "}&\multicolumn{1}{l|}{", y[0] , "}&\multicolumn{1}{l|}{" , y[1], "}\\\\" print " \\cline{2-2}\\cline{5-5}\\cline{7-7}" print "\\end{array}", - return [b,x[1],y[1]] + return [b, x[1], y[1]] -# groesster gemeinsamer Teiler -def gcd(a,b): - return euklid(a,b)[0] +# groesster gemeinsamer Teiler +def gcd(a, b): + return euklid(a, b)[0] # kleinstes gemeinsames Vielfaches -def lcm(a,b): - return abs(a*b) / gcd(a,b) +def lcm(a, b): + return abs(a * b) / gcd(a, b) #eulersche phi-Funktion def phi(n): - return n*reduce(lambda x,p:x*(1-1./p), factorD(n).keys(), 1) + return n * reduce(lambda x, p:x * (1 - 1. / p), factorD(n).keys(), 1) -def ordm(a,m): +def ordm(a, m): e = 1 ae = a - while ae%m!=1: - ae=ae*a - e = e+1 + while ae % m != 1: + ae = ae * a + e = e + 1 return e # Legendre Symbol -def legendre(z,n): - stack = [[z,n]] +def legendre(z, n): + stack = [[z, n]] d = +1 while len(stack): - [z,n] = stack.pop(0) - print z,"/",n - if(z>n): - stack.append([z%n, n]) + [z, n] = stack.pop(0) +# print z,"/",n + if(z > n): + stack.append([z % n, n]) + continue + + if(z == n - 1): + if(n % 4 == 3): + d = d * (-1) continue fac = factorD(z).keys() - if(len(fac)>1): - stack[len(stack):] = map(lambda x:[x,n],fac) + if(len(fac) > 1): + stack[len(stack):] = map(lambda x:[x, n], fac) continue - if(z==2): - if(n%8==3 or n%8==5): - d = d*(-1) + if(z == 2): + if(n % 8 == 3 or n % 8 == 5): + d = d * (-1) continue - if(z==1): + if(z == 1): continue - stack.append([n,z]) - if (n%4==3 and z%4==3): - d = d* (-1) + stack.append([n, z]) + if (n % 4 == 3 and z % 4 == 3): + d = d * (-1) return d #Legendre Symbol mit TeX Ausgabe -def legendre_tex(z,n): - stack = [[z,n],[0,0]] - l=-1 +def legendre_tex(z, n): + stack = [[z, n], [0, 0]] + l = -1 d = +1 print "\\begin{align}" - while len(stack)>1: - [z,n] = stack.pop(0) + while len(stack) > 1: + [z, n] = stack.pop(0) - if([z,n]==[0,0]): - stack.append([0,0]) - l = l+1 - if(l==0): + if([z, n] == [0, 0]): + stack.append([0, 0]) + l = l + 1 + if(l == 0): print "\n&=", - elif(l>3): + elif(l > 3): print "\\\\ \n&=", l = 1 else: print "\n=", - if(d<0): + if(d < 0): print "-", continue - print "\\legend[L]{",z,"}{",n,"}", + print "\\legend[L]{", z, "}{", n, "}", - if(z>n): - stack.append([z%n, n]) + if(z > n): + stack.append([z % n, n]) + continue + + if(z == n - 1): + if(n % 4 == 3): + d = d * (-1) continue fac = factorD(z).keys() - if(len(fac)>1): - stack[len(stack):] = map(lambda x:[x,n],fac) + if(len(fac) > 1): + stack[len(stack):] = map(lambda x:[x, n], fac) continue - if(z==2): - if(n%8==3 or n%8==5): - d = d*(-1) + if(z == 2): + if(n % 8 == 3 or n % 8 == 5): + d = d * (-1) continue - if(z==1): + if(z == 1): continue - stack.append([n,z]) - if (n%4==3 and z%4==3): - d = d* (-1) + stack.append([n, z]) + if (n % 4 == 3 and z % 4 == 3): + d = d * (-1) + + print + print "=", d + print "\\end{align}" + return d + +# Jacobi Symbol +def jacobi(z, n): + d = +1 + while 1: + print z, "/", n + if(z > n): + z = z % n + continue + + if(z == n - 1): + if(n % 4 == 3): + d = d * (-1) + break + + if(z % 4 == 0): + z = z / 4 + continue + + if(z == 2): + if(n % 8 == 3 or n % 8 == 5): + d = d * (-1) + break + if(z == 1): + break + + [z, n] = [n, z] + if (n % 4 == 3 and z % 4 == 3): + d = d * (-1) + + return d + +#Jacobi Symbol mit TeX Ausgabe +def jacobi_tex(z, n): + l = -2 + d = +1 + print "\\begin{align}" + while 1: + + l = l + 1 + if(l == 0): + print "\n&=", + elif(l > 3): + print "\\\\ \n&=", + l = 1 + elif(l>0): + print "\n=", + if(d < 0): + print "-", + + print "\\legend[J]{", z, "}{", n, "}", + + + if(z > n): + z = z % n + continue + + if(z == n - 1): + if(n % 4 == 3): + d = d * (-1) + break + + if(z % 4 == 0): + z = z / 4 + continue + + if(z == 2): + if(n % 8 == 3 or n % 8 == 5): + d = d * (-1) + break + if(z == 1): + break + + [z, n] = [n, z] + if (n % 4 == 3 and z % 4 == 3): + d = d * (-1) print - print "=",d + print "=", d print "\\end{align}" return d -legendre_tex(69,97) \ No newline at end of file +print jacobi_tex(69, 97) diff --git a/UE/python/test.pdf b/UE/python/test.pdf index 06d4625a0507130df4b3299a66919b600f03db65..16e94d70846afb556956862766f89e54dfe98af4 100644 GIT binary patch delta 17142 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 KRn^tsjSB!nekia2 delta 17628 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