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.
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.
RELATED TERMS
Pseudorandom Number Generator Randomness Statistical Test Suite Seed Period Entropy Uniform Distribution
COMPETING TERMS
Mersenne Twister Xorshift Linear Congruential Generator
RELATIONS
- Broader: Generator
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