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
Code, hier editierbar zum Übersetzen:
%\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 04 Mär '18, 09:05

cis's gravatar image

cis
9.6k103460491
Akzeptiert-Rate: 29%

bearbeitet 04 Mär '18, 09:34

Was hast du denn schon versucht?

(04 Mär '18, 11:14) Henri

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

(04 Mär '18, 12: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.

(05 Mär '18, 01:19) Henri

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\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}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 04 Mär '18, 21:49

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 04 Mär '18, 21:52

Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×27

gestellte Frage: 04 Mär '18, 09:05

Frage wurde gesehen: 4,737 Mal

zuletzt geändert: 05 Mär '18, 01:19