Is there a way in GAUSS to calculate all the possible combinations of a list of length N take K at a time?

## 1 Answer

0

The GAUSS function `combinate` will return the indices of all possible combinations of a vector of length N taken K at a time. Each row of this function will contain the indices of a different combination. For example:

```
x = { 0.35, 1.2, 0.9, 4.7 };
//calculate the indices of all combinations
cmb = combinate(4, 2);
print cmb;
```

will return the indices:

1 2 1 3 1 4 2 3 2 4 3 4

Using these indices you can print out each of the combinations like this:

```
//loop through and print all combinations
for i(1, rows(cmb), 1);
print x[cmb[i,.]];
endfor;
```

which will return the following output:

0.35 1.20 0.35 0.90 0.35 4.70 1.20 0.90 1.20 4.70 0.90 4.70

## Your Answer

## 1 Answer

The GAUSS function `combinate` will return the indices of all possible combinations of a vector of length N taken K at a time. Each row of this function will contain the indices of a different combination. For example:

```
x = { 0.35, 1.2, 0.9, 4.7 };
//calculate the indices of all combinations
cmb = combinate(4, 2);
print cmb;
```

will return the indices:

1 2 1 3 1 4 2 3 2 4 3 4

Using these indices you can print out each of the combinations like this:

```
//loop through and print all combinations
for i(1, rows(cmb), 1);
print x[cmb[i,.]];
endfor;
```

which will return the following output:

0.35 1.20 0.35 0.90 0.35 4.70 1.20 0.90 1.20 4.70 0.90 4.70