Permutation, recursion made by IterationList - Study
A [b]simple idea [/b]is to use permutations of n-1 elements to generate permutations of n elements.[br]Generate permutations of size 3 using permutations of size 2.[br]Permutations of two elements 1 2 and 2 1.[br]Permutations of three elements can be obtained by inserting 3 at all positions in all permutations of size 2.[br]Inserting 3 in all positions of 1 2 ===> 1 2 [b]3[/b], 1 [b]3[/b] 2 and [b]3[/b] 1 2.[br]Inserting 3 in all positions of 2 1 ===> 2 1 [b]3[/b], 2 [b]3[/b] 1 and [b]3[/b] 2 1.[br][br]n=3[br][i]Iteration({Element(a, 1)+1,Join(Sequence( (Sequence(Insert({Element(a, 1)+1}, Element(Element(a, 2),k) ,j ),j,Element(a, 1) +1,1,-1)),k,1,Length(Element(a, 2))))}, a, [b] {{ 1,{ {1}} }} [/b], [b]n-1[/b])[br][/i][br][i]Iteration({N(X)+1,Join(Sequence( (Sequence(Insert({N(X)+1}, Element(P(X),k) ,j ),j,N(X) +1,1,-1)),k,1, (N(X)! )))}, X, {{ 1,{ {1}} }} , n-1)[/i] mit [i]N(p):=Element(p, 1), P(p):=Element(p, 2)[/i][br][br][math] \left\{ 3, \left(\begin{array}{rrr}1&2&3\\1&3&2\\3&1&2\\2&1&3\\2&3&1\\3&2&1\\\end{array}\right) \right\} [/math][br][br][i]Iteration( [color=#1e84cc]«Expression»[/color], [color=#38761D]«Variables», «Start Values[i][color=#38761D]»[/color][/i][/color], «Count» )[/i][br][i]IterationList([color=#1e84cc]{Element(a,1) + 1, …..[/color][color=#0000ff][b]([/b][/color][color=#1e84cc]Element(a,2), Element(a,1) + 1[/color][color=#0000ff][b])[/b][/color][color=#1e84cc]…..}[/color],[color=#38761D]a[/color],[color=#38761D]{{0, A0}}[/color],3)[/i][br] [color=#0000ff] j [/color] [color=#0000ff][b]([/b][/color] [color=#0000ff]A [sub]j[/sub] [b])[/b] [/color][br]Rekursion, wenn für [i]Expression [/i]und Lauf[i]variable[/i] a eine spezielle Listenform gewählt wird:[br][br][color=#38761D]«Variables», «Start Values»[/color][color=#38761D] == [color=#38761D]a[/color] , [color=#38761D]{{0, A0}}[/color][br] j == Element(a,1) [math]\nearrow [/math] [math]\nwarrow[/math] Element(a,2)[/color] == A[sub]j-1[/sub] [br][br]use IterationList() to see all the growing permutation steps. [br][br]to trace n times n-1 lists of permutation let grow up iteration count going thru all n permutation. stops at P6 - P7 (ggb6.x), CAS [img]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAZCAYAAADaILXQAAABrUlEQVRIicXVvaqrQBAH8POC6cR3SCXYGggoiJu1EiwWrFIIPkUak8Jgo1vY2GyKkEpSyIqK/1OE3HtJ4j0fHjkD0yzDb2en2HnDjPE2O55lGRhjoJTCdd1JSSkFYwxZlt1w3/ehqipM04Rt25PSNE2oqgrf9284IQSWZaGuazRNMynruoZlWSCE3HDXdUEIQdd1k+fcdR0IIXBd9y9u2zaapgEACCHAOcfpdALnHEKIJ2Sspmka2LY9jqdpCs/zsNls4Hke0jR9wsdqPsQ55zAMA4vFAoZhgHP+hI/V/G7nj/MsyxJSSvR9j77vIaVEWZbfm/lj5HmOMAyRJAmSJEEYhsjz/GXtt3DHcaDrOnRdh+M4P4e3bYuiKBAEAYIgQFEUaNv2Z3AAGIYBUkpIKTEMw2jdl/GqqhDHMaIoQhRFiOMYVVVNw+8oYwyapkFRFCiKAk3TwBh7ecmH+OVywW63+4PesXvnj+eHwwHX6/VzOOcc6/V6tMPHFy2XS2y3WwghPt/5/2b77yWUUqxWK+z3+9f4lC/3fD7jeDxCCPH85c66LGZdc7Mu6LniHVGMp1glqRKFAAAAAElFTkSuQmCC[/img], AlgebraView:[br][br][img]data:image/png;base64,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[/img][br][br]is there a limit of list lenght?[br][br]
[table][tr][td]var n = 4;[br]var A = [];[br]var c = [];[br][br]ggbApplet.evalCommand("Ljs={{1},{1},{1}}");[br]// c ist eine Codierung des Stapelzustands. c[k] codiert den Schleifen-Zähler, wenn generate(k - 1, A) aufgerufen wird[br][br]for (var i = 0; i < n; i++) {[br] c[i] = 0;[br] A[i] = i + 1;[br]};[br][br]ggbApplet.evalCommand("Ljs={{" + A + "}}");[br]var k = 1;[br]var i = 1;[br]while (i < n) {[br][br] if (c[i] < i) {[br] if (i % 2 == 0) {[br] var t = A[0];[br] A[0] = A[i];[br] A[i] = t;[br] } else {[br] var t = A[c[i]];[br] A[c[i]] = A[i];[br] A[i] = t;[br] };[br] k++;[br]ggbApplet.evalCommand("SetValue(Ljs," + (k) + ",{" + A + "})");[br]// Vertauschung ist durchgeführt worden und hat die Schleife beendet. Simuliert das Inkrement des Schleifen-Zählers[br] c[i]++;[br]// Simuliert einen rekursiven Aufruf, der den Basisfall erreicht, indem der Zeiger auf den Basisfall analog im Array durchgeführt wird[br] i = 1;[br] } else {[br]// das Aufrufen von generate(i+1, A) endet, wenn die Schleife endet.[br]// Setzt den Status zurück und simuliert das Stapeln durch Inkrementieren des Zeigers.[br] c[i] = 0;[br] i++;[br] };[br]};[/td][td]Javascript translation [br]from wiki article[br][br][br][br]I have tried to create permutations via IterationList. [br]An implementation of the heap algorithm (-> Wikipedia). [br]It is clear that this doesn't get you very far, because the [br]lists grow factorially. [br]More out of interest for investigating or exercise IterationList....[br][br][br][br][br][br][br][br][br][br][br][br][br][br][br][br]Now there are iteration steps that only transfer the [br]heap pointers and do not bring the permutation further. [br][br]-this else statement [br]- you can filter the IterationList out unique but the iteration list grows [br]and the additional overhead is not predictable for me...[br][br][br][br][/td][/tr][/table]
[code]Start_i={{HeapPointer},{Heap},{Permutation}}[br]N_i=IterationCount[br]{HeapPointer}, Element(a,1,1)[br]{Heap}, Element(a,2)[br]{Permutation}, Element(a,3)[br][br][/code][size=85][code]Start_i=[/code][br]{{2}, {1, 1, 1}, {1, 2, 3}}, [size=85]P[sub]3[/sub][/size], N[sub]i[/sub]=7, 3!=6[br]{{2}, {1, 1, 1, 1}, {1, 2, 3, 4}}, [size=85]P[sub]4[/sub][/size], N[sub]i[/sub]=41, 4!=24[br]{{2}, {1, 1, 1, 1, 1}, {1, 2, 3, 4, 5}}, [size=85]P[sub]5[/sub][/size], N[sub]i[/sub]=201, 5!=120[br]{{2}, {1, 1, 1, 1, 1, 1}, {1, 2, 3, 4, 5, 6}},[size=85] P[sub]6[/sub][/size], N[sub]i[/sub]=1133, 6!=720[br]{{2}, {1, 1, 1, 1, 1, 1, 1}, {1, 2, 3, 4, 5, 6, 7}}, [size=85]P[sub]7[/sub][/size], Ni~8401, 7!=5040[br]P[sub]8[/sub] = never come back[br][br][size=85][br]P_{Heap}=[/size]IterationList([br]If(Element(Element(a, 2), Element(a, 1, 1)) < Element(a, 1, 1), [br] { {2}, [br] Sequence(Element(Element(a, 2), j) + (Element(a, 1, 1) ≟ j) * 1, j, 1, Length(Element(a, 2))), [br] If(Mod(Element(a, 1, 1) - 1, 2) ≟ 0, [br] Sequence(Element(Element(a, 3), If(j ≟ 1, Element(a, 1, 1), If(j ≟ Element(a, 1, 1), 1, j))), j, 1, Length(Element(a, 2))), [br] Sequence(Element(Element(a, 3), [br] If(j ≟ Element(Element(a, 2), Element(a, 1, 1)), Element(a, 1, 1), If(j ≟ Element(a, 1, 1), Element(Element(a, 2), Element(a, 1, 1)), j))), [br] j, 1, Length(Element(a, 2))))[br] }, [br] {{Element(a, 1, 1) + 1}, Sequence(If(Element(a, 1, 1) ≟ j, 1, Element(Element(a, 2), j)), j, 1, Length(Element(a, 2))), Element(a, 3)[br] }), [br]a, {Start_i}, N_i)[br][br]Permute=Unique(Sequence(Element([size=85]P_{Heap}[/size], j, 3), j, 1, Length([size=85]P_{Heap}[/size])))[br][br]wikiheaplist=Sequence({Element(l1, j, 1) - 1, Element(l1, j, 2) - 1, Element(l1, j, 3)}, j, 2, Length(l1))[br][/size][br]- perhaps you will create the permutation list piecewise doing a reasonable list length count N[sub]i[/sub], copy the last Iteration step of heap list and start (Start[sub]i[/sub]) a new list with it ;-)
usage of IterationList as user-funktion generating P7[br]first 1000 heap steps[br]next 1000 heap steps [br]starting with last heap step of first 1000
[math]u_n = u_{n-1} +n^2+2 \;with\; u_1 = 4[/math][br][i]IterationList[{Element[a, 1] + 1, Element[a, 2] + (Element[a, 1] + 1)² + 2}, a, {{1, 4}}, 10][br][/i][br][math] T_n=(n\;T_{n−1}+3⋅n!)/2 \; für\; n≥1,\; T_0=3[/math][br][i]IterationList({Element(a, 1) + 1, ((Element(a, 1) + 1) * Element(a, 2) + 3(Element(a, 1) + 1)!) / 2}, a, {{1, 3}}, 10)[/i][br][br][math]a_n=a_{n-1}+a_{n-2}[/math][br][i]Fibonacci:=Iteration(Join({a, {Element(a, Length(a) - 1) + Element(a, Length(a))}}), a, {{1, 1}}, 12)[br]Fibonacci:=Iteration(Join(a, {Sum(Take(a, Length(a) - 1))} ), a, {{1, 1}}, 12)[/i][br][br]CAS-Function LU Decomposition at one single matrix[br][url=https://www.geogebra.org/m/c94bmjuy]LR Zerlegung auf einem Matrixfeld[/url][math]\nearrow[/math][br][size=85][i]LRdecomp(AA,k):=Join(Take(AA,1,k), Sequence(Sequence(If(i < k,Element(AA, j,i) , If(i==k,Element(AA, j,k)/Element(AA, k,k), Element(AA, j,i) -Element(AA,j,k) (Element(AA, k,i)/Element(AA, k,k)))) ,i,1,Length(AA)) ,j,k+1,Length(AA)));[/i][/size][br](12) [i]A:= {{2,1,-3,4},{4,1,-4,9},{-2,1,0,-5},{2,2,-5,1}}[/i][br](13)[i] IterationList({Element(a,1)+1,LRdecomp(Element(a, 2),Element(a, 1)+1) }, a, {{0, A}},3)[/i][br][br]Intervall-Schachtelung nach Heron [math]\sqrt{3}[/math][br][math] y \in \mathbb{R} \text{ mit } y \geq 1\text{. } a_{1}:=1 \text{ und } b_{1}:=y \text{ sowie } a_{n+1}:=\frac{2 y}{a_{n}+b_{n}} \quad \text{ und } \quad b_{n+1}:=\frac{a_{n}+b_{n}}{2} \quad ∀ n \in \mathbb{N} [/math][br][i](1) Y:=3[br](2) Numeric(IterationList({2 Y /Sum(X), Sum(X)/2}, X, {{1,Y}},5),15)[br](3) Flatten(Last($2)) - sqrt(Y)[/i][br]
Folgen expliziter Darstellung [br][br][size=150](1) a[sub]n[/sub] = [sup]1[/sup]/[sub]n[/sub] ; n>=1 [/size] : [i]Sequence(1/n ,n,1,11)[/i][br][size=150](2) a[sub]n[/sub]=n-3 ; n>= 1[sup] [/sup][/size] : [i]Sequence(n-3,n,1,15)[/i][br][size=150](3) a[sub]n[/sub]= [sup]n[/sup]/[sub](n+1)[/sub] ; n>= 1[/size] : [i]Sequence(n/(n+1),n,1,11)[/i] [br][br]in rekursiver Schreibweise[br][br](1) [i]IterationList( 1/(1/a+1) ,a,{1},10)[/i][br][math] \left\{ 1, \frac{1}{2}, \frac{1}{3}, \frac{1}{4}, \frac{1}{5}, \frac{1}{6}, \frac{1}{7}, \frac{1}{8}, \frac{1}{9}, \frac{1}{10}, \frac{1}{11} \right\} [/math][br][br](2) [i]IterationList(a+1,a,{(-2) },15)[/i][br][math] \left\{ -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 \right\} [/math][br][br](3) [i]IterationList( -1/(a-2) ,a,{1/2},10)[/i] [color=#ffffff][i]1/(1+1/(1+1/(1/a-1)))[/i][/color][br][math] \left\{ \frac{1}{2}, \frac{2}{3}, \frac{3}{4}, \frac{4}{5}, \frac{5}{6}, \frac{6}{7}, \frac{7}{8}, \frac{8}{9}, \frac{9}{10}, \frac{10}{11}, \frac{11}{12} \right\} [/math][br][br]Verfahren[br](1) [math]a_n=\dfrac1n \quad \to \quad n=\dfrac1{a_n}[/math]. [br]Das nächste Folgeglied [br][math]a_{n+1}=\dfrac1{n+1}[/math]. [br]Ersetze [math]n[/math] durch [math]\dfrac1{a_n}[/math] und erhalte[br][math]a_{n+1}=\dfrac1{\dfrac1{a_n}+1}[/math]. [br] [math]a_{n+1}[/math] hängt nur noch vom Vorgänger ab [math]a_n[/math] .[br][br][code]Javascript[br]function an(x) {[br] if (x > 1 / 11) an(1 / (1 / x + 1))[br] alert(x);[br]}[br][/code]