Updates: Time limit removed. You must be able to describe output - see new rule.
A pangram is a sentence that uses every letter in the alphabet at least once, such as:
A perfect pangram uses every letter exactly once.
Consider writing a program that is a perfect pangram, using the 95 printable ASCII characters (hex codes 20 to 7E) as the alphabet:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Such a program must contain exactly 95 characters, with each printable ASCII character occurring exactly once, but in any order. (Thus there are 95! = 1.03×10148 possibilities.)
Your task is to write this program such that the number of printable ASCII characters printed to stdout is as high as possible (i.e. prolific).
Your score is the number of printable ASCII characters your program outputs (the total amount, not the distinct amount: AABC
scores 4 whereas ABC
scores 3). The highest score wins.
Details
- The output may contain any characters (including duplicates) but only instances of the 95 printable ASCII characters count towards your score.
- You can use this JSFiddle to count the number of printable ASCII characters in any string.
- If your language does not have stdout use the most appropriate alternative.
- Your program...
- must have finite runtime (the time limit has been removed)
- must have finite output
- may contain comments
- must compile and run without (uncaught) errors
- must not prompt for or require input
- must be time invariant and deterministic
- must not use external libraries
- must not require a network connection
- must not make use of external files
- (you may use the program file itself as long as changing the file name does not alter the program's behavior)
- If this task is impossible is some language that's just too bad.
- You must give your exact output or precisely describe it if it is too large to fit in a post. You do not actually have to run your program. As long as it would run in a finite amount of time on a computer with an unbounded amount of memory it is valid.
Example
This simplistic Python 2 program is a possible solution:
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
It outputs 9876543210
which contains 10 printable ASCII characters, thus scoring 10.
a
six quadrillion times, where it isn't even possible to obtain an accurate upper limit on character count. Anyway, I'm still proud of my 95, even if it is kind of small. Size isn't everything, you know. \$\endgroup\$