# Algorithm to split an array into N groups based on item index (should be something simple)

I feel that it should be something very simple and obvious but just stuck on this for the last half an hour and can't move on.

All I need is to split an array of elements into N groups based on element index.

For example we have an array of 30 elements [e1,e2,...e30], that has to be divided into N=3 groups like this:

```group1: [e1, ..., e10]
group2: [e11, ..., e20]
group3: [e21, ..., e30]
```

I came up with nasty mess like this for N=3 (pseudo language, I left multiplication on 0 and 1 just for clarification):

```for(i=0;i<array_size;i++) {
if(i>=0*(array_size/3) && i<1*(array_size/3) {
print "group1";
} else if(i>=1*(array_size/3) && i<2*(array_size/3) {
print "group2";
} else if(i>=2*(array_size/3) && i<3*(array_size/3)
print "group3";
}
}
```

But what would be the proper general solution?

Thanks.

## Answers

What about something like this?

```for(i=0;i<array_size;i++) {
print "group" + (Math.floor(i/(array_size/N)) + 1)
}
```

### What is the meaning of Parsec String () (String,String)?

I understand the Parsec modules' parse function, which takes a rule argument, an error message, and an input string:

### Cache RenderPartial output

I have a Pagination user control (ascx) that I render with: