From f3d32f27ad15d2d3edd0c61584dade67e5a6fd0a Mon Sep 17 00:00:00 2001 From: Linas Vepstas Date: Tue, 29 Sep 1998 05:46:40 +0000 Subject: [PATCH] script to generate permutations git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@1238 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/perm.pl | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100755 src/engine/perm.pl diff --git a/src/engine/perm.pl b/src/engine/perm.pl new file mode 100755 index 0000000000..931126356e --- /dev/null +++ b/src/engine/perm.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl +# +# This is a short perl script that prints all permutations +# of five objects; should be easy to generalize to more. + +sub rotate { + local ($n, $i); + $n = $_[0]; + + $tmp = $arr[0]; + for ($i=0; $i<$n-1; $i++) { + $arr[$i] = $arr[$i+1]; + } + $arr[$n-1] = $tmp; +} + +sub recur { + local ($n, $i); + $n = $_[0]; + + if (3>=$n) { + print "DECLARE ($arr[4], $arr[3], $arr[2])\n"; + return; + } + + for ($i=0; $i<$n-1; $i++) { + &rotate ($n-1); + &recur ($n-1); + } +} + +@arr=(DESC,MEMO,AMT,NUM,DATE); +# @arr=(1..5); + +&recur (6); +