Ich berechne im 1. Schritt die Glieder einer Folge. Nun sollen die Folgenglieder durtch einen festgelegten Divisor geteilt werden, wobei eventuelle entstehende Ganzzahlen auch als Ganzzahl ausgegeben werden; Brüche werden voll gekürzt. Wie kann ich Folgenglieder auf Bruchrechnung anwenden? Was muss ich da anders machen? Öffne in Overleaf
\documentclass[11pt]{scrartcl} %\documentclass[border=3mm]{standalone} \usepackage[ngerman]{babel} \usepackage{pgf, pgffor, tikz, amsmath, amssymb} \usetikzlibrary{math, matrix} \begin{document} $M_n(k) = (2k-1)\cdot 2^n - 1 \text{ mit } k,n \in \mathbb{N}_{\geq 1}$ \\ % \Mersenne{<k>}{<n>} Folgenglieder berechnen \newcommand{\Mersenne}[2]{% =================== \tikzmath{% =================== int \M, \n, \k; for \k in {#1}{% for \n in {#2}{%% \M = (2*\k-1)*2^\n-1; print {\M}; };%% };% } % =================== }% =================== Test Mersenne: \Mersenne{1}{2} %Test \bigskip % Reduzierte Brüche / Ganzzahlen ausgeben \newcommand{\rfrac}[2]{%%%%%%%%%%%%%%%%%%%%%%% \begingroup \tikzmath{%================== int \Zaehler, \Nenner, \ggt, \Numerator, \Denominator; \Zaehler = #1; \Nenner = #2; function GCD(\x,\y) {return gcd(\x,\y);}; \ggt = GCD(\Zaehler, \Nenner); \Numerator = \Zaehler/\ggt; \Denominator = \Nenner/\ggt; if \Denominator == 1 then { print {$\Numerator$}; } else { print {$\dfrac{\Numerator}{\Denominator}$}; }; }%================== \endgroup }%%%%%%%%%%%%%%%%%%%%%%% Test: \rfrac{6}{2} ~~ \rfrac{18}{11} ~~ \rfrac{4}{12} \\ Test Mersenne-Bruch: Tut nicht % $\rfrac{\Mersenne{1}{2}}{3}$ \end{document} gefragt 03 Jan '18, 14:35 cis |
Mit LuaLaTeX. Öffne in Overleaf
\documentclass{article} \usepackage{amsmath} \usepackage{luacode} \begin{luacode*} -- https://de.wikipedia.org/wiki/Euklidischer_Algorithmus local function gcd(a,b) return (b ~= 0) and gcd(b,a%b) or a end function reduce(a,b) local c = gcd(a,b) local a = a/c local b = b/c if (b == 1) then tex.sprint(a) else tex.sprint("\\frac{" .. a .. "}{" .. b .. "}") end end function mersenne(k,n) local M = (2*k-1)*2^n-1 tex.sprint(M) end \end{luacode*} \newcommand\rfrac[2]{\directlua{reduce(#1,#2)}} \newcommand\mersenne[2]{\directlua{mersenne(#1,#2)}} \begin{document} $\rfrac{\mersenne{1}{1}}{3}$ $\rfrac{\mersenne{1}{2}}{3}$ $\rfrac{\mersenne{1}{3}}{3}$ $\rfrac{\mersenne{1}{4}}{3}$ $\rfrac{\mersenne{1}{5}}{3}$ \end{document} beantwortet 03 Jan '18, 22:02 Henri Ja, ähhh, danke... Aber Du immer mit Deinem Lua :) Das muss doch auch mit pdflatex gehen?
(03 Jan '18, 22:14)
cis
@cis :-) ich finde es gut, auch oft Lua-Lösungen zu sehen, auch weil man die neue einfache direkte Programmierung anhand konkreter Beispiele gut sieht. Vielleicht will man gar nicht mehr zu Makro-Expansions-"Programmierung" zurück wenn man die Lua-Schnittstelle erstmal gewohnt ist. ;-)
(03 Jan '18, 22:34)
stefan ♦♦
|