Skip to content

Main content

Random Cyclic List Cut

Replay seed or one advancing injected source, uniform over the explicitly stated finite support, not cryptographically secure. Choose one of N cyclic list cut positions, preserving order and original position mapping; empty lists reject.

Loading tool…

Description

Choose one of N cyclic list cut positions, preserving order and original position mapping; empty lists reject.

A random construction is defined by its sampling support: positions, permutations, complete tilings, proposal sequences or another explicit set. Uniform choices at one stage do not necessarily make final visible outcomes uniform. A replay seed gives a deterministic sequence; equal values can hide different sampled positions. These tools are for reproducible synthetic examples rather than cryptographic entropy.

Choose one of N cyclic list cut positions, preserving order and original position mapping; empty lists reject.

When to use this tool

Use this tool to choose one of N cyclic list cut positions, preserving order and original position mapping; empty lists reject.

How to use the tool and how it works

  1. Enter values, seed using the definitions below.
  2. Run the operation. Resolve input-format errors before interpreting an output.
  3. Read result.seed, result.cut, result.values, result.sourceIndexes, using the stated boundary, ordering, sign and absence conventions.

Choose cut uniformly from zero through listLength−1 and rotate the original cyclic order so that source position cut comes first. Return sourceIndexes and values.1

Input fieldMeaning and unitsAccepted input
valuesLiteral string values in original positional order; repeated spellings retain distinct source indexes.Dense list of at most 128 literal strings, each at most 8,192 UTF-16 units.
seedNonblank replay seed, at most 256 UTF-16 code units; an injected source overrides seeded draws.Text, at most 8,192 UTF-16 code units; narrower grammar/range rules also apply.
Output fieldInterpretation
resultObject containing the fields below.
result.seedOriginal supplied seed string; injected-source replay additionally requires that source’s state.
result.cutSelected zero-based split/rotation boundary.
result.valuesGenerated/reordered literal values, preserving the stated positional support.
result.sourceIndexesOutput-position-to-original-position map.
json
{
  "input": {
    "values": [
      "a",
      "b",
      "c"
    ],
    "seed": "batch56"
  },
  "output": {
    "result": {
      "seed": "batch56",
      "cut": 1,
      "values": [
        "b",
        "c",
        "a"
      ],
      "sourceIndexes": [
        1,
        2,
        0
      ]
    }
  }
}

Limitations and assumptions

  • Only cyclic rotations are sampled, not all permutations; duplicate values may conceal different sampled cuts.
  • A nonblank seed of at most 256 UTF-16 code units is required. With ordinary use the seed initializes one deterministic advancing source; an application-injected random source takes precedence and the seed alone then cannot replay the result. Uniformity statements assume independent uniform source draws in [0,1). Source calls are bounded and degenerate injected sources can fail a rejection budget. This is not cryptographically secure.
  • Every declared outer field is required and unknown outer fields are rejected. Strings and JSON text have size limits, lists are bounded to 128 entries, and JSON nesting/node counts are bounded. Tighter operation-specific bounds stated above take precedence.
  • Ordinary numeric outputs must be finite and within safe-integer magnitude. Exact large lengths/counts use decimal strings. Original record indexes and code-unit positions are zero-based; span ends are exclusive unless stated otherwise.

Alternative or Complementary methods

Choose a generator whose support matches the intended experiment and retain source-position provenance. Use a separate statistically justified process model or cryptographic source where those properties matter.

References

  1. Tool behavior and example: Random Cyclic List Cut — tool.io

Similar or alternative tools

  • Random Bounded Chunk Cut Positions

    Uniformly sample bounded positive chunk-length compositions of an explicit total with fixed chunk count using exact completion-count unranking; infeasible support rejects.

  • Random Guillotine Rectangle Cut Trace

    At each step choose a uniform splittable current rectangle, then a uniform legal axis and integer interior cut; local-choice process, not uniform over final partitions.