- 论坛徽章:
- 145
|
回复 3# dorodaloo
$ awk -vn=10 -vm=5 'BEGIN{printf "out=";for(c=1;c<=n;++c)a[c]=c;choose(n,m)}function choose(n,m,p){if(++C>100)exit;if(n==1){print "\nKing="a[1];exit};p=(p+m-1)%n+1;printf " "a[p];for(c=p;c<n;++c)a[c]=a[c+1];choose(n-1,m,p-1)}'
out= 5 10 6 2 9 8 1 4 7
King=3
$ awk -vn=3 -vm=100 'BEGIN{printf "out=";for(c=1;c<=n;++c)a[c]=c;choose(n,m)}function choose(n,m,p){if(++C>100)exit;if(n==1){print "\nKing="a[1];exit};p=(p+m-1)%n+1;printf " "a[p];for(c=p;c<n;++c)a[c]=a[c+1];choose(n-1,m,p-1)}'
out= 1 3
King=2
$ awk -vn=100 -vm=3 'BEGIN{printf "out=";for(c=1;c<=n;++c)a[c]=c;choose(n,m)}function choose(n,m,p){if(++C>100)exit;if(n==1){print "\nKing="a[1];exit};p=(p+m-1)%n+1;printf " "a[p];for(c=p;c<n;++c)a[c]=a[c+1];choose(n-1,m,p-1)}'
out= 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99 2 7 11 16 20 25 29 34 38 43 47 52 56 61 65 70 74 79 83 88 92 97 1 8 14 22 28 35 41 49 55 62 68 76 82 89 95 4 13 23 32 44 53 64 73 85 94 5 19 37 50 67 80 98 17 40 59 86 10 46 77 26 71 31 100 58
King=91
|
|