Mises à jour: délai supprimé. Vous devez pouvoir décrire la sortie - voir la nouvelle règle.
Un pangram est une phrase qui utilise au moins une fois chaque lettre de l'alphabet, comme:
Un pangram parfait utilise chaque lettre exactement une fois.
Envisagez d'écrire un programme qui est un pangram parfait, en utilisant les 95 caractères ASCII imprimables (codes hexadécimaux 20 à 7E) comme alphabet:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Un tel programme doit contenir exactement 95 caractères, chaque caractère ASCII imprimable apparaissant exactement une fois, mais dans n'importe quel ordre. (Il y a donc 95! = 1,03 × 10 148 possibilités.)
Votre tâche consiste à écrire ce programme de sorte que le nombre de caractères ASCII imprimables imprimés sur stdout soit aussi élevé que possible (c'est-à-dire prolifique).
Votre score est le nombre de caractères ASCII imprimables générés par votre programme (le montant total , pas le montant distinct : AABC
scores 4 tandis que ABC
scores 3) . Le score le plus élevé l'emporte.
Détails
- La sortie peut contenir n'importe quel caractère (y compris les doublons) mais seules les instances des 95 caractères ASCII imprimables comptent pour votre score.
- Vous pouvez utiliser ce JSFiddle pour compter le nombre de caractères ASCII imprimables dans n'importe quelle chaîne.
- Si votre langue n'a pas stdout, utilisez l'alternative la plus appropriée.
- Votre programme ...
- doit avoir un temps d'exécution fini (le délai a été supprimé)
- doit avoir une sortie finie
- peut contenir des commentaires
- doit compiler et s'exécuter sans erreur (non interceptée)
- ne doit pas demander ou exiger d'entrée
- doit être invariant dans le temps et déterministe
- ne doit pas utiliser de bibliothèques externes
- ne doit pas nécessiter de connexion réseau
- ne doit pas utiliser de fichiers externes
- (vous pouvez utiliser le fichier programme lui-même tant que la modification du nom du fichier ne modifie pas le comportement du programme)
- Si cette tâche est impossible, c'est un langage qui est tout simplement trop mauvais.
- Vous devez donner votre sortie exacte ou la décrire précisément si elle est trop grande pour tenir dans un message . Vous n'avez pas réellement besoin d'exécuter votre programme. Tant qu'il serait exécuté dans un laps de temps fini sur un ordinateur avec une quantité illimitée de la mémoire est valide.
Exemple
Ce programme simpliste Python 2 est une solution possible:
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
Il génère 9876543210
10 caractères ASCII imprimables, soit 10.
a
six quadrillions de fois, où il n'est même pas possible d'obtenir une limite supérieure précise sur nombre de caractères. Quoi qu'il en soit, je suis toujours fier de mon 95, même s'il est un peu petit. La taille n'est pas tout, vous savez.