From 45794fb198c8fac02b5c82b6ac3f1e17bac1075e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Tue, 19 Jan 2021 22:08:40 +0100 Subject: =?UTF-8?q?Permutationen=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- buch/chapters/50-permutationen/beispiele/perm.m | 44 +++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 buch/chapters/50-permutationen/beispiele/perm.m (limited to 'buch/chapters/50-permutationen/beispiele/perm.m') diff --git a/buch/chapters/50-permutationen/beispiele/perm.m b/buch/chapters/50-permutationen/beispiele/perm.m new file mode 100644 index 0000000..2e837ef --- /dev/null +++ b/buch/chapters/50-permutationen/beispiele/perm.m @@ -0,0 +1,44 @@ +# +# perm.m -- find a random permutation +# +# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule +# +N = 8 +M = N+1 + +function retval = permutation(n) + p = (1:n); + for i = (1:(n-1)) + j = i + 1 + floor(rand() * (n-i)); + s = p(i); + p(i) = p(j); + p(j) = s; + endfor + retval = p; +end + +function retval = compose(p,q) + n = size(p)(1,2); + retval = zeros(1,n); + for i = (1:n) + retval(i) = q(p(i)); + end +end + +sigma = permutation(N) +sigma = compose(sigma, permutation(N)) +sigma = compose(sigma, permutation(N)) +sigma = compose(sigma, permutation(N)) +sigma = compose(sigma, permutation(N)) +sigma = compose(sigma, permutation(N)) +sigma = compose(sigma, permutation(N)) + +s = zeros(M,N); +s(1,:) = sigma; +for i = (2:M) + s(i,:) = compose(s(i-1,:), sigma); +end + +s + +compose(sigma, permutation(N)) -- cgit v1.2.1