Tâche
Encodez une chaîne entièrement composée d'alphabets majuscules ( A-Z
) utilisant uniquement des zéros et des uns, en utilisant votre propre schéma préféré. Mais la règle n'est pas si simple!
Règles
- Votre programme / fonction doit gérer correctement toute chaîne d'entrée valide de longueur 8 .
- Les résultats doivent avoir la même longueur pour toutes les entrées.
- Les résultats doivent être distincts pour des entrées distinctes.
- Les résultats doivent être aussi courts que possible.
- Les résultats doivent être équilibrés à zéro (avoir un nombre similaire à celui des zéros). Ils ne doivent pas nécessairement être égaux (c'est-à-dire parfaitement équilibrés), mais votre score sera pénalisé pour cela.
Vous n'êtes pas obligé de fournir un programme / une fonction qui décode votre encodage.
Entrée et sortie
- Vous pouvez décider d'accepter tout ensemble de 26 caractères ASCII imprimables distincts au lieu de
A-Z
. - Vous pouvez décider de sortir n'importe quelle paire de caractères ASCII imprimables distincts au lieu de
0
et1
. - Vous n'êtes pas autorisé à générer un entier au lieu d'une chaîne de bits, car il peut avoir des zéros non significatifs et il n'est pas clair si vous avez réellement respecté la règle 2.
- Si vous décidez de vous écarter de la valeur par défaut (
A-Z
entrée et01
sortie), vous devez spécifier les jeux de caractères d'entrée / sortie dans votre soumission.
Notation
- Score de base: taille du code, ou 1 si votre programme est vide.
- Sanctions
- Pénalité pour la durée: multiplier
1.5 ** (encoded length - 42)
- Il n'y a aucun bonus pour être plus court; 42 est la longueur minimale pour un encodage parfaitement équilibré de chaînes de 8 longueurs avec une taille d'alphabet 26.
- Pénalité pour déséquilibre: multipliez
2 ** max(abs(ones - zeros) for every valid input of length 8)
, oùones
etzeros
sont les comptes de 1 et 0 dans chaque sortie, respectivement. - Votre soumission doit montrer un exemple du pire des cas (entrée / sortie) ou une explication théorique sur la valeur de la pénalité.
- Pénalité pour la durée: multiplier
- Le score le plus bas l'emporte.
Exemple de soumission
Esolang hypothétique, 0 octet, score 74733.8906
Voici un esolang hypothétique, où un programme vide imprime tous les codes ASCII des caractères d'entrée en binaire.
Par exemple, si vous donnez AAAAAAAA
en entrée, le programme imprimera 1000001
8 fois de suite, c'est-à-dire 10000011000001100000110000011000001100000110000011000001
.
L'alphabet saisi est choisi pour être CEFGIJKLMNQRSTUVXYZabcdefh
. De cette façon, tous les caractères sont convertis en sept chiffres en binaire, et le nombre de zéro ne diffère que d'un par caractère (ils ont tous trois 1 et quatre 0 ou vice versa lorsqu'ils sont convertis en binaire).
La longueur de sortie est toujours de 56 et le pire déséquilibre se produit sur les entrées comme CCCCCCCC
, où les zéros apparaissent 8 fois plus que les uns.
Par conséquent, le score de cette soumission est 1.5 ** (56 - 42) * 2 ** 8 == 74733.8906
.