Sie sollten 3 Programme und / oder Funktionen in einer Sprache schreiben.
Alle diese Programme sollten die gleiche Aufgabe lösen, aber unterschiedliche (aber gültige) Ausgaben liefern. (Dh für jedes Programmpaar sollte es eine Eingabe geben, die unterschiedliche (aber gültige) Mengen von Ausgabenummern erzeugt.)
Die Aufgabe
- Sie erhalten eine Ganzzahl
n
größer als 1 - Sie sollten
n
eindeutige positive Ganzzahlen zurückgeben oder ausgeben , und keine davon sollte durch teilbar seinn
. - Die Reihenfolge der Zahlen spielt keine Rolle und eine Permutation von Zahlen zählt nicht als unterschiedliche Ausgabe.
Ein gültiges Triplett von Programmen mit einigen input => output
Paaren:
program A:
2 => 5 9
4 => 5 6 9 10
5 => 2 4 8 7 1
program B:
2 => 1 11
4 => 6 9 1 2
5 => 4 44 444 4444 44444
program C (differs only in one number from program B):
2 => 1 13
4 => 6 9 1 2
5 => 4 44 444 4444 44444
Wertung
- Ihre Punktzahl ist die Summe der Längen der 3 Programme oder Funktionen.
- Niedrigere Punktzahl ist besser.
- Wenn Ihre Programme / Funktionen den Code gemeinsam nutzen, sollte der gemeinsam genutzte Code in die Länge jedes Programms einbezogen werden, das den Code verwendet.
code-golf
number
arithmetic
number-theory
randomra
quelle
quelle
Antworten:
Pyth,
1716 Bytes5 Bytes:
Ausgänge:
6 Bytes:
Ausgänge:
5 Bytes:
Ausgänge:
Alternative Version, in aufsteigender Reihenfolge:
-ShQQ
quelle
J, 16 Bytes
Funktion 1, 5 Bytes
Funktion 2, 6 Bytes
Funktion 3, 5 Bytes
Wie es funktioniert
Funktion 1
Da P Primzahl und P> y ist , kann y P nicht teilen e.
Funktion 2
Wenn y dividiert P e + y , wäre es auch divide P e + y - y = P e .
Funktion 3
Wenn y geteilt (y + 1) e wäre, müsste irgendein Primfaktor Q von y geteilt werden (y + 1) e .
Aber dann würde Q sowohl y als auch y + 1 teilen und daher y + 1 - y = 1 .
quelle
Dyalog APL,
16 bis17 Bytesquelle
Vitsy , 54 Bytes
Programme:
Ausgänge:
Wie es funktioniert (mit dem ersten Programm als Erklärung):
Probieren Sie es online!
quelle
Perl, 79
Zu jedem Programm wird ein Zeichen hinzugefügt, da hierfür das
-n
Flag erforderlich ist .Ziemliech direkt.
quelle
Mathematica, 12 + 12 + 12 = 36 Bytes
Tests:
quelle
CJam, 8 + 8 + 8 = 24 Bytes
Dies sind drei unbenannte Funktionen, die sich voraussichtlich
n
auf dem Stapel befinden und an ihrer Stelle eine Liste von Ganzzahlen hinterlassen. Ich bin mir nicht sicher, ob dies optimal ist, aber ich muss später nach einer kürzeren Lösung suchen.Testsuite.
Ergebnisse:
Der erste funktioniert auch als
oder
quelle
Python 2, 79 Bytes
Drei anonyme Funktion , die beim Start
1
und nach jedem zähltn, 2*n, 3*n
fürn
Bedingungen.quelle
Im Ernst, 20 Bytes
Ja, das ist nicht optimal ...
quelle
Par , 16 Bytes
Die hier beschriebene benutzerdefinierte Codierung verwendet nur ein Byte pro Zeichen.
Ausgänge
quelle
Haskell, 54 Bytes
Diese drei Funktionen sind ziemlich einfach, also ...
quelle
Oktave, 11 + 13 + 13 = 37 Bytes
quelle
Python 2, 125 Bytes
Jede Zeile hier ist ein vollständiges Programm. Die naheliegendste Lösung für mich.
EDIT @ Sherlock9 sparte zwei Bytes.
quelle
Haskell, 50
Beispiele:
quelle
Golfscript, 50
5157BytesEine Golfscript-Version des früheren Python-Codes von Quintopia . Jede Funktion
n
entfernt den Stapel.quelle
TI-Basic (TI-84 Plus CE), insgesamt
55 bis40 ByteEinfach, ähnlich wie bei vielen anderen Antworten, zeigt jede eine Liste der Zahlen (X + A) N + 1 für X im Bereich (N) und wobei A für welches Programm (1, 2 oder 3) steht.
Alte Lösung (55 Bytes):
Einfach, ähnlich wie bei vielen anderen Antworten, zeigt jeder die Zahlen (X + A) N + 1 für X im Bereich (N) und wobei A für welches Programm (1, 2 oder 3) steht.
quelle