Graph
Permuted Congruential Generator

🎲Permuted Congruential Generator

NEW

Also known as: PCG

A family of fast, statistically robust generators that permute outputs of linear congruential sequences.

DESCRIPTION

PCG uses a simple linear congruential core combined with output permutations to improve statistical quality and equidistribution. It is space-efficient, fast, and passes demanding test suites while avoiding pitfalls of classic LCGs. Variants provide different periods and streams. PCG is suitable for simulations, sampling, and procedural generation where reproducibility matters. It is widely documented and implemented in multiple languages.

ALTERNATIVE DEFINITIONS

PCG — Official site

PCG is a family of simple fast space-efficient statistically good algorithms for random number generation.

Highlights performance, space efficiency, and statistical quality.

Source

ACM TOMS — Melissa O’Neill

The PCG family uses a linear congruential generator combined with a permutation function to improve statistical properties.

Describes the core design principle combining LCG with permutation.

Source

Pseudorandom Number Generator Randomness Statistical Test Suite Seed Period Entropy Uniform Distribution

COMPETING TERMS

Mersenne Twister Xorshift Linear Congruential Generator

RELATIONS

KNOWLEDGE AREAS

Software Engineering AI Data Science Infrastructure

TARGET AUDIENCE

Software Developer Data Scientist AI Engineer MLOps Engineer DevOps Engineer Hardware Engineer

EXTERNAL SOURCES

  • Wikipedia - Permuted congruential generator
  • PCG - Overview, docs, and reference implementations
  • ACM TOMS - Peer-reviewed paper on PCG family
  • PCG - Guide to using PCG in C

TOP QUESTIONS

What is the Permuted Congruential Generator (PCG)?

A PRNG family combining an LCG core with output permutations to deliver fast, statistically sound random numbers.

Category: Definition

Why use PCG over Mersenne Twister?

PCG offers better space efficiency, multiple streams, and strong statistical properties in a simple design.

Category: Comparison

Where is PCG used?

Simulations, randomized algorithms, sampling, and procedural generation across languages and platforms.

Category: Application

What are common mistakes when using PCG?

Poor seeding, mismanaging streams, and unsafe sharing across threads can reduce randomness quality.

Category: Mistakes

What risks exist with PRNGs like PCG?

They are not cryptographically secure; using them for secrets risks predictable outputs.

Category: Risks

How to seed PCG correctly?

Use high-entropy seeds, distinct per stream, and record seeds to ensure reproducibility.

Category: HowTo

What makes PCG statistically robust?

Carefully chosen permutations over LCG outputs help pass stringent test suites.

Category: Overview

Is PCG suitable for cryptography?

No. Use CSPRNGs like ChaCha20 or OS-provided generators for secrets.

Category: Misunderstanding

Where to learn PCG?

The official PCG site and ACM TOMS paper provide detailed design and usage guidance.

Category: Learning