4
Your challenge is to implement a cyclic Program Sequence Generator (PSG) in a language of your choice.
Given a language, L, a PSG in L is a program in L that outputs a PSG in L. Some properties of a PSG are:
- Repeated execution of a PSG in L generates a sequence of programs in L.
- A PSG is said to be cyclic if the sequence it generates is cyclic.
- The period of a cyclic PSG, P, is written T(P) and is the period of the cycle in the sequence it generates. The period of a non-cyclic PSG is written the same way and is infinite.
A trivial example of a PSG is a quine; any quine is a cyclic PSG with period 1.
To make this challenge interesting, the period of your PSG must be at least 5.
Scoring is a bit different than typical code golf. Informally, your score is the sum of the length of all programs in one cycle of the sequence generated by your PSG divided by the period of your PSG. Formally: let P be your PSG, pₙ be the nth term in your PSG's sequence, and l(pₙ) be the length in bytes of pₙ. Then your score is:
For a non-cyclic PSG, since the limit of l(pₙ) as n goes to infinity is infinity, the score of any non-cyclic PSGs diverges to infinity.
The PSG with the lowest score wins

Oh, you never said, are we trying to get a HIGH score or a LOW score? I'm assuming high. – Magic Octopus Urn – 2018-02-02T19:57:16.453
Golfers beware: there is an error in my formal score formula because it assumes a sequence cycles back to p¹, when in reality it could only start being cyclic for some larger value of n. Unfortunately I don't have time to fix it immediately, but use the intuition. from the informal definition for now. – Vaelus – 2018-02-02T19:59:56.610
The correct formula would have m go to infinity instead of T(P) – Vaelus – 2018-02-02T20:14:13.610
@Vaelus the limit is the same in either case, one is just easier to compute. – kamoroso94 – 2018-02-02T22:56:57.037
It's the same for non-cyclic PSGs but not, for instance, for a program that outputs a quine but isn't one itself. – Vaelus – 2018-02-02T23:03:19.440