| hermann on Wed, 06 Sep 2023 13:18:56 +0200 | 
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Python combinations() in GP? | 
I am porting Python code to GP. I need Python combinations from itertools:
from itertools import combinations for i in combinations(range(5),3):
... print(i) ... (0, 1, 2) (0, 1, 3) (0, 1, 4) (0, 2, 3) (0, 2, 4) (0, 3, 4) (1, 2, 3) (1, 2, 4) (1, 3, 4) (2, 3, 4)
Since GP is 1-based and not 0-based at Python, I came up with this:
$ cat part.gp
sorted(v)=
{
  if(#v<2,return(1));
  if(v[1]>=v[2],return(0));
  sorted(v[2..#v]);
}
{
  forvec(v=vector(3,i,[1,5]),
    if(sorted(v),
      print(v)));
}
$
Which does the right output, but has to skip many not sorted 
combinations.
Is there a more efficient GP code for Python combinations? $ gp -q < part.gp [1, 2, 3] [1, 2, 4] [1, 2, 5] [1, 3, 4] [1, 3, 5] [1, 4, 5] [2, 3, 4] [2, 3, 5] [2, 4, 5] [3, 4, 5] $ Regards, Hermann.