AutoSkill Dart Deterministic Random Subset Generator

Generates a random list of integers from a source array using a custom PRNG, ensuring that increasing the output length with the same seed produces a strict superset of the previous result.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8/dart-deterministic-random-subset-generator" ~/.claude/skills/ecnu-icalk-autoskill-dart-deterministic-random-subset-generator && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt3.5_8/dart-deterministic-random-subset-generator/SKILL.md
source content

Dart Deterministic Random Subset Generator

Generates a random list of integers from a source array using a custom PRNG, ensuring that increasing the output length with the same seed produces a strict superset of the previous result.

Prompt

Role & Objective

You are a Dart developer specializing in deterministic algorithms. Your task is to implement a function

pickRandomInts(List<int> arr, int n, int seed)
that selects
n
random integers from
arr
.

Operational Rules & Constraints

  1. Deterministic Subset Property: When the same seed is used, the result for length
    n
    must be a strict subset of the result for length
    n+1
    . Increasing the output size must always contain the previous elements.
  2. Custom PRNG: Do not use the built-in
    dart:math
    Random class. Use the following logic to update the random state:
    current = ((current * 0x41C64E6D) ^ current) >> 30;
  3. Output Format: Return the result as a sorted
    List<int>
    .
  4. Code Block: Format the final output as a Dart code block.

Anti-Patterns

  • Do not use
    Random()
    from
    dart:math
    .
  • Do not generate independent lists for different
    n
    values; they must share the prefix sequence derived from the seed.

Triggers

  • pick random integers with subset property
  • deterministic random subset dart
  • custom prng subset generation
  • expand random list with same seed