Skip to content

Main content

Random Two-Bank Bijection

Replay seed or one advancing injected source, uniform over the explicitly stated finite support, not cryptographically secure. Assign unique supplied right-bank IDs to left-bank IDs by a uniform full bijection, not arbitrary graph matching or schedule generation.

Loading tool…

Description

Assign unique supplied right-bank IDs to left-bank IDs by a uniform full bijection, not arbitrary graph matching or schedule generation.

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.

Assign unique supplied right-bank IDs to left-bank IDs by a uniform full bijection, not arbitrary graph matching or schedule generation.

When to use this tool

Use this tool to assign unique supplied right-bank IDs to left-bank IDs by a uniform full bijection, not arbitrary graph matching or schedule generation.

How to use the tool and how it works

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

Require equally sized distinct-ID banks with at least two entries. Fisher–Yates shuffle the right bank and pair its results with the fixed left-bank order.1

Input fieldMeaning and unitsAccepted input
leftDistinct literal left-bank IDs in fixed pairing order.Dense list of at most 128 literal strings, each at most 8,192 UTF-16 units.
rightDistinct literal right-bank IDs, or the nonnegative right-move count for a grid route.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.pairsGenerated bank matches or per-pair orientation records with original provenance.
json
{
  "input": {
    "left": [
      "a",
      "b"
    ],
    "right": [
      "x",
      "y"
    ],
    "seed": "batch56"
  },
  "output": {
    "result": {
      "seed": "batch56",
      "pairs": [
        {
          "left": "a",
          "right": "x"
        },
        {
          "left": "b",
          "right": "y"
        }
      ]
    }
  }
}

Limitations and assumptions

  • The sample space is bijections between the two labeled banks, rather than arbitrary unordered pairs or matching under constraints.
  • 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 Two-Bank Bijection — tool.io

Similar or alternative tools

  • Random Two-Level Run Trace

    Choose a fair initial level and independent uniform run lengths, then alternate two explicit distinct levels; support is level/run assignments, not uniform over all bounded traces.

  • Random Two-Row Domino Tiling

    Uniformly sample complete domino tilings of a 2xN board via exact Fibonacci completion counts and rank unranking, reporting vertical singles or paired horizontal domino placements.