Kann man mit pgfmath eigentlich alle Permutationen einer Zahlenliste bestimmen?

Z.B. für 1,2,...,6 wäre

alt text

ein mögliches Ergebnis.

Für das einfache Beispiel 1,2,3 wäre das Ergebnis:

alt text

Im Handbuch findet man den Begriff, allerdings in Verbindung mit 'random' und 'Lua'. In Lua bin ich nicht so bewandert.

Falls es nicht gehen sollte würde ich selbst eher in Richtung SageTeX weiterforschen.

Öffne in Overleaf
%\documentclass[]{article}
\documentclass[border=5mm]{standalone}
\usepackage{amsmath}

\begin{document}
$\begin{pmatrix} 1& 2 & 3\\ 1 & 2 & 3\end{pmatrix}$,
$\begin{pmatrix} 1& 2 & 3\\ 2 & 1 & 3\end{pmatrix}$,
$\begin{pmatrix} 1& 2 & 3\\ 3 & 2 & 1\end{pmatrix}$

$\begin{pmatrix} 1& 2 & 3 & 4 & 5 & 6\\ 5 & 1 & 3 & 6 & 2 & 4 \end{pmatrix}$

\end{document}

gefragt 04 Mär, 03:05

cis's gravatar image

cis
7.8k15161257
Akzeptiert: 71%

bearbeitet 04 Mär, 03:34

Was hast du denn schon versucht?

(04 Mär, 05:14) Henri

Ich habe im Handbuch nach 'permutation' gesucht. Meinst Du jetzt, versuchen das irgendwie mit Schleifen umzusetzen oder so?

(04 Mär, 06:59) cis

@cis Na ja. Zu schauen ob das schon jemand für dich gemacht hat und dann fragen ob es jemand für dich machen kann zählt jetzt nicht unbedingt als Versuch.

(04 Mär, 19:19) Henri

Öffne in Overleaf
\documentclass{article}
\usepackage{amsmath}
\usepackage{luacode}

\begin{luacode*}
-- https://www.lua.org/pil/9.3.html
local function permgen(a, n)
   local n = n or #a
   if n == 0 then
      coroutine.yield(a)
   else
      for i=1,n do
         a[n], a[i] = a[i], a[n]
         permgen(a, n - 1)
         a[n], a[i] = a[i], a[n]
      end
   end
end

local function perm(a)
   return coroutine.wrap(function() permgen(a) end)
end

function print_permutation(a)
    local start = table.concat(a,"&") .. "\\\\"
    for p in perm(a) do
       tex.sprint("\\begin{pmatrix}")
       tex.sprint(start)
       tex.sprint(table.concat(p,"&"))
       tex.sprint("\\end{pmatrix}")
    end
end
\end{luacode*}

\begin{document}

$\directlua{print_permutation{1,2,3}}$

\end{document}

alt text

Permanenter link

beantwortet 04 Mär, 15:49

Henri's gravatar image

Henri
13.3k42636

bearbeitet 04 Mär, 15:52

Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×24

Frage gestellt: 04 Mär, 03:05

Frage wurde angeschaut: 385 Mal

Zuletzt aktualisiert: 04 Mär, 19:19