Dies ist eine neue Art von Herausforderung, die durch das Problem " Wiederherstellung des mutierten Quellcodes" inspiriert wurde .
Sie sollten zwei Programme oder Funktionen in derselben Sprache schreiben. Der erste sollte Aufgabe Nr. 1 lösen und der zweite sollte Aufgabe Nr. 2 lösen.
Ihre Punktzahl ist die Summe aus dem längeren Programm und der Levenshtein-Distanz zwischen dem Quellcode der beiden Programme. Eine niedrigere Punktzahl ist besser, daher sollten Sie versuchen, die beiden Lösungen ähnlich zu gestalten und gleichzeitig die Länge der Programme kurz zu halten.
Aufgabe 1
Sie sind eine positive ganze Zahl angegeben N
und Sie ausgeben sollte die Collatz - Sequenz von N
durch Leerzeichen oder Zeilenumbruch getrennt. Das nachfolgende Trennzeichen ist zulässig.
Das erste Element der Collatz-Sequenz ist N
. Die restlichen Elemente werden basierend auf ihrem Nachfolger generiert :
Sobald die Sequenz erreicht ist, werden 1
keine neuen Elemente generiert.
Input => Output Beispiele:
6 => 6 3 10 5 16 8 4 2 1
8 => 8 4 2 1
1 => 1
Aufgabe Nr. 2
Ein Paar Doppelprimzahlen ist ein Paar positiver Ganzzahlen, deren Differenz 2 beträgt und beide Primzahlen sind.
Sie erhalten eine positive Ganzzahl N
und sollten das kleinste Paar von Doppelprimes ausgeben, bei denen beide Primes größer als sind. N
Die erste Zahl sollte die kleinere sein und die beiden Primes sollten durch Leerzeichen oder Zeilenumbrüche getrennt sein. Das nachfolgende Trennzeichen ist zulässig.
Input => Output Beispiele:
6 => 11 13
42 => 59 61
1 => 3 5
Snippet zur Berechnung der Punktzahl
(Änderung des Problems, bei dem der mutierte Quellcode wiederhergestellt wurde.)
Bearbeiten
In der Kopfzeile der Antworten verwenden wir das Format
[Language], [longer length] + [distance] = [final score]
.
Z.B
Python 2, 60 + 32 = 92
3 5
für den Eingang 3 Primzahlpaare aus. Es sollte ausgegeben werden5 7
.05AB1E , 14 +
13109 =272423-4 Punkte nur dank ASCII
Collatz-Sequenz (14 Bytes):
Probieren Sie es online!
Doppelprimzahlen (14 Byte):
Probieren Sie es online!
Golfed Twin Primes (11 Bytes):
Probieren Sie es online!
quelle
,,
und warum funktioniert es nurÐ,
dort ? )Java 8, 118 + 84 = 202
Collatz:
Doppelprimzahlen:
quelle
Mathematica, 53 + 29 = 82
Collatz-Sequenz:
Doppelprimes-Programm:
quelle
> <> , 116 + 86 = 202
Collatz-Programm (46):
Doppelprimes-Programm (116):
Autsch. Beide Programme starten mit der gleichen
atoi
Funktion, aber danach geht es bergab. Derselbe Codeteil wird zur Überprüfung der Primalität zweimal wiederholt. Die Wiederverwendung des Teils kann etwas kürzer sein, bei der Einrichtung werden jedoch nicht viele Bytes gespart.Könnte viel besser sein, wenn man die hintere Hälfte der Doppelprimzahlen in die unbenutzten Stellen des Collatz-Programms wirft, aber ich bin mir nicht sicher, ob das erlaubt ist.
quelle
C ++ Abstand = 114 Längere Länge = 155 Punktzahl = 269
Aufgabe 1
Aufgabe 2
Aufgabe 2 verbessert
quelle
int p(int x){int z=0;for(int i=2;1<x;i++){cout<<x<<' ';x=(x%2==0)?x/2:x*3+1;}cout<<x;return z;}