For challenges where an exact output is not required but some property must still be fulfilled.

Most challenges require submissions to take an input and produce a particular output. That is for any input there is a precise required output (or sometimes a short list of acceptable outputs). For these challenges we can view the program as a function (or at least implementing a function). Such challenges then give a specific function for programs to implement.

In an challenge instead of a specific function being given, some properties are required of the implemented function and it is up to the answerers to choose a function that meets the requirements.

The difference between challenges an challenges with flexible output is that in an choosing the outputs constitutes a core part of the challenge. With flexible output answers using one method can usually be easily modified to make answers that use another.