]> git.leopard-lacewing.eu Git - zahlenTA.git/commitdiff
+python testSkript
authorPeter Schaefer <schaeferpm@gmail.com>
Thu, 31 May 2012 21:15:58 +0000 (23:15 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Thu, 31 May 2012 21:15:58 +0000 (23:15 +0200)
.gitignore
UE/python/09.py [new file with mode: 0644]
UE/python/latex.py [new file with mode: 0644]
UE/python/lib.py [new file with mode: 0644]
UE/python/python.sty [new file with mode: 0644]
UE/python/test.pdf [new file with mode: 0644]
UE/python/test.tex [new file with mode: 0644]

index 1cb5a9a811661fbc29c78916d871d5139253938a..13b25225f0489519566437924f0ae2f7365eb44b 100644 (file)
@@ -9,3 +9,4 @@
 *.ind
 *.ilg
 *.backup
+*.py.?.*
diff --git a/UE/python/09.py b/UE/python/09.py
new file mode 100644 (file)
index 0000000..9be1ccd
--- /dev/null
@@ -0,0 +1,15 @@
+
+def f(x,m=120):
+    return (2*x**3-3*x**2+5*x+6)%m
+
+for i in range(3):
+    print i,
+    print f(i,3)
+    
+for i in range(5):
+    print i,
+    print f(i,5)
+    
+for i in range(8):
+    print i,
+    print f(i,8)
\ No newline at end of file
diff --git a/UE/python/latex.py b/UE/python/latex.py
new file mode 100644 (file)
index 0000000..43ae622
--- /dev/null
@@ -0,0 +1 @@
+jobname="test"
diff --git a/UE/python/lib.py b/UE/python/lib.py
new file mode 100644 (file)
index 0000000..894e6e5
--- /dev/null
@@ -0,0 +1,107 @@
+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)
+
+# Gibt die naechst kleine Fib zu max zurueck
+def fib(m):
+    a,b = 1,2
+    while b < m:
+        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]
+    i = 1;
+    while a[i] < m:
+        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
+    s = 0
+    while b < m:
+        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)
+    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):
+                p[i] = 0
+    return filter(lambda x:x>0,p)
+
+# Gibt alle Primfaktoren von n zurueck
+def factor(n):
+    if n<4:
+        return [n]
+    p = primes(int(n**.5+1))
+    f = []
+    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)
+    f.sort()
+    return f
+
+# Gibt alle Primfaktoren von n als vektor mit Vielfachheit zurueck
+def factorD(n):
+    if n<4:
+        return {n:1}
+    p = primes(int(n**.5+1))
+    f = {}
+    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
+            else:
+                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)
+
+# generiert Pyth tripel
+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 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]
+        
+    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
\ No newline at end of file
diff --git a/UE/python/python.sty b/UE/python/python.sty
new file mode 100644 (file)
index 0000000..1183d0f
--- /dev/null
@@ -0,0 +1,105 @@
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2
+%% of the License, or (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+%%
+%% Author: Martin R. Ehmsen, ehmsen@imada.sdu.dk.
+%% Department of Mathematics and Computer Science,
+%% University of Southern Denmark, DK
+%%
+%% You can find an online copy of the GPL at
+%% http://www.gnu.org/copyleft/gpl.html .
+%% 
+%% Note: shell-escape needs to be activated for this to work.
+%% This can either be done by passing -shell-escape as an option to
+%% latex or by adding/changing "shell_escape = t" in your texmf.cnf .
+
+% 0.2 -> 0.21: Moved \newwrite\@module from \@writemodule and out, since
+% no more than 15 \newwrites are allowed (and the previous version created a new
+% every time \@writemodule was called.
+
+\NeedsTeXFormat{LaTeX2e}[1994/12/01]
+\ProvidesPackage{python}[2007/06/07 v0.21 Python in LaTeX]
+
+\newwrite\@out
+\newwrite\@module
+
+\begingroup \catcode `|=0 \catcode `[=1
+\catcode`]=2 \catcode `\{=12 \catcode `\}=12
+\catcode`\\=12 |gdef|@xpython#1\end{python}[|immediate|write|@out[#1]|end[python]]
+|endgroup
+
+\def\python{\kernel@ifnextchar [{\@python}{\@python[]}}
+
+
+\newcounter{py@codenum}
+\def\@python[#1]{%
+\stepcounter{py@codenum}
+\gdef\@pythoninclude{#1}
+\immediate\openout\@out=\jobname.py
+\newlinechar='15
+\begingroup \catcode`\^^M=12 %
+\let\do\@makeother\dospecials\obeyspaces%
+\@xpython}
+
+\def\endpython{%
+\endgroup
+\immediate\closeout\@out
+\@writemodule
+\immediate\write18{python\space\jobname.py > \jobname.py.\thepy@codenum.out 2> \jobname.py.\thepy@codenum.err}
+\immediate\input\jobname.py.\thepy@codenum.out}
+
+
+
+% \def\@python[#1]{%
+% \gdef\@pythoninclude{#1}
+% \immediate\openout\@out=\jobname.py
+% \newlinechar='15
+% \begingroup \catcode`\^^M=12 %
+% \let\do\@makeother\dospecials\obeyspaces%
+% \@xpython}
+% 
+% \def\endpython{%
+% \endgroup
+% \immediate\closeout\@out
+% \@writemodule
+% \immediate\write18{cat \@pythoninclude\space\jobname.py | python > \jobname.py.out 2> \jobname.py.err}
+% \immediate\input\jobname.py.out}
+% %\immediate\write{\begin{verbatim}}
+% %\immediate\input\jobname.py.err
+% %\immediate\write{\end{verbatim}}}
+
+\def\@writemodule{%
+\immediate\openout\@module=latex.py
+\immediate\write\@module{jobname="\jobname"}
+\immediate\closeout\@module}
+
+% BUGS:
+% 1. If anything gets send to stderr then it should be included
+% in \begin{verbatim}...\end{verbatim} to be properly displayed
+%
+% \immediate\write18{cat \@pythoninclude\space\jobname.py | python > \jobname.py.out 2>\jobname.py.err}
+%
+% 2. Watch out for indentation done by aucTeX in Emacs
+%
+% 3. Let the package accept a "final version" option, such
+% that the output of each python run is saved such that it can be
+% inserted into the document by hand 
+% (conference, journals are not likely to compile with
+% shell_escape or have python).
+%
+% \gdef\@prepython{}
+% \def\prepython#1{%
+% \gdef\@prepython{#1}
+% }
+% sed -e 's/^  //g' cluster.py
+% \immediate\write18{\@prepython\space\jobname.py > \
\ No newline at end of file
diff --git a/UE/python/test.pdf b/UE/python/test.pdf
new file mode 100644 (file)
index 0000000..f85be3c
Binary files /dev/null and b/UE/python/test.pdf differ
diff --git a/UE/python/test.tex b/UE/python/test.tex
new file mode 100644 (file)
index 0000000..e5af741
--- /dev/null
@@ -0,0 +1,16 @@
+%& -shell-escape
+\documentclass[a4paper,10pt,fleqn]{article}
+\usepackage{template}
+\usepackage{python}
+
+\begin{document}
+ \begin{python}
+  print "hello"
+ \end{python}
+  \begin{python}
+  print "hello2"
+ \end{python}
+
+\end{document}
+