On this site we obey the laws of thermodynamics!
MATLAB, 9.6923e-005 0.005950967872272
H0 = 2.7243140535197345, Hinf = 4.670280547752703, L0 = 327
This new version is an improved version of the first "proof of concept". In this version I get a great score increase from the first iteration. This was achieved by "blowing up" the output of the first program, that is replicated by all the subsequent ones. Then I also tried to find the minimal H0
by just appending the most common symbol of the code as many times as possible. (This had obviously a limit, since it does not only decrease H0
but also increases L0
at the same time. You can see the development of the score plotted against the size of the program where the size is varied by just adding or removing 1
.) The subsequent iterations still are equivalent to the previous version below.
a=['ns}z2e1e1116k5;6111gE16:61kGe1116k6111gE16:6ek7;:61gg3E1g6:6ek7;:61gg3E1'];11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111;;disp(['[''',a+1,'''];',0,'a=[''',a,'''];',0,[a-10,']]);'],0,[a-10,']]);']]);
Previous version:
H0 = 4.22764479010266, Hinf = 4.243346286312808, L0 = 162
The following code is inspired by the matlab quine. It basically outputs just itself again twice. The clue is that for any iteration we have n
lines of code and n-1
newline symbols \n
. So as n
approaches to infinity, the ratio of lines of code to newlines approaches 1, and at the same time this guarantees that we have a strictly monotonous growth in entropy. That also means we can easily calculate Hinf
by just considering the zero-th generation code with equally many newlines as lines of code. (Which one can experimentally confirm, as it converges quite quickly.)
a=['ns}z2e1kGe1116k6111gE16;:61kGe1116k6111gE16;:6ek7;:61gg3E1g6;:6ek7;:61gg3E1'];
disp(['a=[''',a,'''];',10,'a=[''',a,'''];',10,[a-10,']]);'],10,[a-10,']]);']]);
Jelly, 0.68220949
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”©v⁵
H90 = 19.779597644909596802, H0 = 4.088779347361360882, L0 = 23
I used long doubles to compute H90. Double precision floats incorrectly reported that H47 < H46
The first program prints
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”©v1010
where …
serves as a placeholder for all Unicode characters with code points between 100,000 and 1,000,000. The actual length is 900,031 characters.
The seconds program prints
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”©v101010
which, in turn, prints
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”
“…”
“ȷ6ȷ5rỌ,®Ṿ€ṁṾY⁾©v⁸⁵”©v10101010
etc.
None of these programs works in the online interpreter, which has a 100 KB output limit. However, if we modify the program to print 0123456789
instead of the aforementioned 900,000 Unicode characters, you can Try it online!