Next Weak Composition Vector

Return the next lexicographically increasing weak composition of the same total and length, preserving nonnegative integer parts; null marks the final vector.

Description

Return the next lexicographically increasing weak composition of the same total and length, preserving nonnegative integer parts; null marks the final vector.

A weak composition is a vector of nonnegative integers with a fixed sum. Its next lexical vector redistributes only the suffix.

When to use this tool

Return the next lexicographically increasing weak composition of the same total and length, preserving nonnegative integer parts; null marks the final vector.

  • Prepare the supplied vector fields for this operation.
  • Compare the complete example with the representation used by your own input before carrying the result into another step.

How to use the tool and how it works

  1. Enter vector. Use the exact text syntax, units and index conventions explained below.
  2. Run the tool. If input validation fails, correct the supplied fields before interpreting any result.
  3. Read result.vector. Interpret false, null and empty lists using the distinctions below; they can be valid outputs.

Require a nonempty vector with entries from 0 to 128. Find the rightmost nonfinal position with positive suffix sum, increment it, clear the suffix and place suffix sum minus one in the last entry. Return null at the terminal vector.1

Input fieldMeaning and representationAccepted input
vectorvector.List of finite numbers; at most 128 entries
Output fieldInterpretation
resultObject containing the named outputs below.
result.vectorThe vector list in the ordering and representation described above.
json
{
  "input": {
    "vector": [
      0,
      1,
      2
    ]
  },
  "output": {
    "result": {
      "vector": [
        0,
        2,
        1
      ]
    }
  }
}

Limitations and assumptions

  • The total and length are preserved. No cyclic wrap or composition enumeration is performed; returned entries can exceed the per-input-entry bound.
  • All declared input fields are required and unexpected top-level fields are rejected. Numbers must be finite; lists are limited to 128 entries and ordinary text fields to 8,192 UTF-16 code units, with tighter limits where stated.
  • JSON text inputs must parse within bounded nesting and size limits. Numeric outputs outside the safe finite range are rejected; large exact integer results use decimal strings. Indexes and half-open spans are zero-based unless a rank is explicitly described as one-based.

Alternative or Complementary methods

Retain the universe size, subset size and ordering convention with a rank. Use rank/unrank pairs from the same convention and distinguish subset masks from lexicographic indexes.

References

  1. Tool behavior and example: Next Weak Composition Vector — tool.io

Similar or alternative tools

  • Next Fixed Weight Binary Word

    Return the next lexicographic binary word with the same length and one-count, without wraparound; null marks the last fixed-weight word.

  • Next Combination Indexes

    Return the next lexicographic fixed-size index combination without wrapping; null marks the order boundary.

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies