Skip to content

Main content

Random Fixed-Endpoint Unit Walk

Replay seed or one advancing injected source, uniform over the explicitly stated finite support, not cryptographically secure. Uniformly sample all unit-step walks with specified start/end and step count by choosing exactly the required up-step subset; impossible endpoint/parity requests reject.

Loading tool…

Description

Uniformly sample all unit-step walks with specified start/end and step count by choosing exactly the required up-step subset; impossible endpoint/parity requests 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.

Uniformly sample all unit-step walks with specified start/end and step count by choosing exactly the required up-step subset; impossible endpoint/parity requests reject.

When to use this tool

Use this tool to uniformly sample all unit-step walks with specified start/end and step count by choosing exactly the required up-step subset; impossible endpoint/parity requests reject.

How to use the tool and how it works

  1. Enter start, end, steps, seed using the definitions below.
  2. Run the operation. Resolve input-format errors before interpreting an output.
  3. Read result.seed, result.increments, result.states, result.support, using the stated boundary, ordering, sign and absence conventions.

Compute positive-step count=(steps+end−start)/2 and require it to be an integer from zero through steps. Choose that many step positions uniformly; fill them with +1 and the rest with −1, then accumulate initial-plus-step states.1

Input fieldMeaning and unitsAccepted input
startInteger initial walk coordinate within ±1,000,000.Finite safe integer satisfying the stated bounds.
endInteger target walk coordinate within ±1,000,000; reachable parity and distance are required.Finite safe integer satisfying the stated bounds.
stepsNumber of transitions, integer 1–127; the states output includes the initial state as well.Finite safe integer satisfying the stated bounds.
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.incrementsProposed signed increments in generated order.
result.statesState sequence including the initial coordinate followed by every transition.
result.supportExact finite support count as decimal text.
json
{
  "input": {
    "start": 0,
    "end": 0,
    "steps": 4,
    "seed": "batch56"
  },
  "output": {
    "result": {
      "seed": "batch56",
      "increments": [
        -1,
        -1,
        1,
        1
      ],
      "states": [
        0,
        -1,
        -2,
        -1,
        0
      ],
      "support": "6"
    }
  }
}

Limitations and assumptions

  • steps is 1–127 and endpoint coordinates within ±1,000,000. Parity or reachability failures reject; support is C(steps,positiveStepCount).
  • 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 Fixed-Endpoint Unit Walk — tool.io

Similar or alternative tools

  • Random Fixed-Pair Dyck Word

    Uniformly sample a fixed-pair Dyck word by exact valid-completion count unranking; no rejection of unbalanced random strings, bounded to 64 pairs.

  • Random Fixed Popcount Mask

    Choose a uniform fixed-cardinality bit-position subset without replacement, returning ascending selected positions; no arbitrary rejection loop.