Votre défi est de créer un code le plus court dans la langue de votre choix qui écrit sur un .txt
fichier le code le plus long pour multiplier deux nombres en prenant deux nombres en entrée et en sortie la réponse .
AUCUNE ENTRÉE NÉCESSAIRE À VOTRE CODE QUI FAIT LE TRAVAIL D'ÉCRITURE !
Le code générateur et le code généré peuvent être dans toutes les langues
N'utilisez PAS de séries ou de progression illimitées pour agrandir le fichier texte.
N'utilisez PAS de déclarations inutiles pour augmenter le score.
NOTATION
( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines)
-----------------------------------------
( size of your code in bytes )
Gagnant
Le gagnant sera choisi dans 1 semaine à partir de maintenant avec le score le plus élevé .
EDIT: la plage d'entrée dans le code multipliant deux nombres doit être comprise entre -32768 et 32767
code-challenge
Mukul Kumar
la source
la source
+
pour*
dans le programme générateur qu'il fournit, et vous le savez probablement déjà, puisque vous avez répondu à cette question aussi bien.Réponses:
perl / perl, score illimité selon la règle d'origine avec plage illimitée
Voici un code qui ne gagne pas:
La sortie a cette forme:
le fichier de sortie a une longueur de 181030 octets, mais après suppression des espaces et des sauts de ligne, il ne fait que 133109 octets. donc le score est de 133109/248 = 536.7289 ...
Voici un autre code qui ne gagne pas - c'est le même programme sauf les 2 premières lignes:
le fichier de sortie est long de 718138 octets, mais après suppression des espaces et des sauts de ligne, il ne fait que 532233 octets. le score est donc de 532233/248 = ~ 2146. mieux! en utilisant 7 donne un score de ~ 8750, 8 rendements ~ 35347, 9 rendements ~ 149129, 10 rendements 151100000 non-espace / 250 = 604 400 ....
bien sûr, nous pouvons le faire aussi longtemps que nous le voulons. la taille du programme source, n, augmentera comme O (log (n)). la taille du programme de sortie est O (2 * n). La limite de 2 * n / log (n) lorsque n va à l'infini est clairement l'infini, donc si je remplace simplement dans mon grand nombre préféré, un googolplex, je gagne (jusqu'à ce que quelqu'un suggère googolplex + 1).
la source
add
qui prend deux paramètres. Il remplit ensuite cette fonction avec des instructions de retour ressemblantreturn 39 if ($i == 13) && ($j == 3);
, en utilisant toutes les valeurs de$l
à$h
pour$i
et$j
. Flexion intelligente de la règle des "seules déclarations inutiles".C, 27297/245 = 111,4
Code source (245 octets)
Une fois compilé et exécuté avec deux arguments entiers sur la ligne de commande, cela génère un autre fichier C contenant le code nécessaire pour calculer leur produit et le compile avec l'
-E
indicateur. Cet indicateur spécifie que le compilateur doit s'arrêter après l'étape de prétraitement et sortir le code source traité (qui inclura tout le contenu destdio.h
etstdlib.h
).Fichier de sortie (27297 octets)
********* LINES 13-1273 OMITTED *********
Résultat de l'exécution du code de sortie
Le fichier de sortie est enregistré sous
add.c
, qui peut être compilé et exécuté normalement:la source
perl, 125 caractères, score 1,630,326,497.312
Même approche de base que mon autre réponse, mais cette fois limitée entre -32768 et 32767 selon les règles mises à jour, et tous les espaces inutiles supprimés complètement:
Le programme de sortie commence ainsi:
et prend fin:
Le programme de sortie fait 190 Go. Plus précisément, 203790812164 octets. Note = 203790812164/125 = 1630326497,312
la source
Script de commande Windows: ~ 1 000 000 000 pts
Code: 158 octets
Sortie: ~ 158000000000 octets
La sortie se compose à peu près de:
la source