Ihre Herausforderung besteht darin , einen kürzesten Code in der Sprache Ihrer Wahl zu .txt
erstellen, der den längsten Code in eine Datei schreibt , um zwei Zahlen zu multiplizieren, indem zwei Zahlen als Eingabe und Ausgabe der Antwort verwendet werden .
KEINE EINGABE FÜR IHREN CODE ERFORDERLICH, DER DEN SCHREIBJOB TUT !
Der Generatorcode und der generierte Code können in beliebigen Sprachen vorliegen
Verwenden Sie KEINE unbegrenzten Serien oder Progressionen, um eine große Textdatei zu erstellen. Verwenden
Sie KEINE unnötigen Anweisungen, um die Punktzahl zu erhöhen.
WERTUNG
( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines)
-----------------------------------------
( size of your code in bytes )
Gewinner
Der Gewinner wird nach 1 Woche mit der höchsten Punktzahl ausgewählt .
BEARBEITEN: Der Eingabebereich im Code, der zwei Zahlen multipliziert, sollte zwischen -32768 und 32767 liegen
quelle
+
zu*
im Generator Programm , das er liefert, und Sie wahrscheinlich schon wissen, da man auch diese Frage beantwortet.Antworten:
Perl / Perl, unbegrenzte Punktzahl unter der ursprünglichen Regel mit unbegrenzter Reichweite
Hier ist ein Code, der nicht gewinnt:
Die Ausgabe hat folgende Form:
Die Ausgabedatei ist 181030 Byte lang, nach dem Entfernen von Leerzeichen und Zeilenumbrüchen jedoch nur 133109 Byte. Die Punktzahl ist also 133109/248 = 536.7289 ...
Hier ist ein anderer Code, der nicht gewinnt - es ist dasselbe Programm mit Ausnahme der ersten beiden Zeilen:
Die Ausgabedatei ist 718138 Byte lang, nach dem Entfernen von Leerzeichen und Zeilenumbrüchen jedoch nur 532233 Byte. Die Punktzahl ist also 532233/248 = ~ 2146. besser! bei Verwendung von 7 ergibt sich eine Punktzahl von ~ 8750, 8 ergibt sich ~ 35347, 9 ergibt sich ~ 149129, 10 ergibt sich 151100000 non-space / 250 = 604,400 ....
Natürlich können wir das tun, solange wir wollen. Die Größe des Quellprogramms, n, erhöht sich als O (log (n)). Die Größe des Ausgabeprogramms ist O (2 * n). Die Grenze von 2 * n / log (n), wenn n gegen unendlich geht, ist eindeutig unendlich. Wenn ich also nur meine Lieblingszahl Googolplex einsetze, gewinne ich (bis jemand Googolplex + 1 vorschlägt).
quelle
add
die zwei Parameter akzeptiert. Anschließend wird diese Funktion mit Return-Anweisungen gefüllt, die wie folgt aussehenreturn 39 if ($i == 13) && ($j == 3);
: Alle Werte von$l
bis$h
for$i
und werden verwendet$j
. Smartass Biegen der Regel "nur unnötige Aussagen".C 27297/245 = 111,4
Quellcode (245 Bytes)
Beim Kompilieren und Ausführen mit zwei Ganzzahlargumenten in der Befehlszeile wird eine weitere C-Datei generiert, die den für die Berechnung des Produkts erforderlichen Code enthält, und mit dem
-E
Flag kompiliert . Dieses Flag gibt an, dass der Compiler nach der Vorverarbeitungsphase anhalten und den verarbeiteten Quellcode ausgeben soll (der den gesamten Inhalt vonstdio.h
und enthältstdlib.h
).Ausgabedatei (27297 Bytes)
********* LINES 13-1273 OMITTED *********
Ergebnis der Ausführung des Ausgabecodes
Die Ausgabedatei wird gespeichert als
add.c
, die kompiliert und normal ausgeführt werden kann:quelle
Perl, 125 Zeichen, Score 1.630.326.497.312
Dieselbe grundlegende Vorgehensweise wie meine andere Antwort, aber diesmal zwischen -32768 und 32767 gemäß den aktualisierten Regeln, und alle unnötigen Leerzeichen wurden vollständig entfernt:
Das Ausgabeprogramm beginnt wie folgt:
und endet:
Das Ausgabeprogramm ist 190 GB lang. Genauer gesagt, 203790812164 Bytes. Score = 203790812164/125 = 1630326497.312
quelle
Windows-Befehlsskript: ~ 1.000.000.000 Punkte
Code: 158 Bytes
Ausgabe: ~ 158000000000 Bytes
Die Ausgabe besteht so ziemlich aus:
quelle