Erster Code Golf Decathlon [geschlossen]

48

Aufgaben

Alle Teilnehmer versuchen die folgende Liste von 10 Aufgaben zu lösen:

  1. Liest eine positive ganze Zahl n von der Eingabe und gibt die Summe der Würfel der ersten n nicht negativen ganzen Zahlen zurück.

    Für die Eingabe 1sollte dies zurückkehren 0.

  2. Lesen Sie eine positive ganze Zahl n aus der Eingabe und geben Sie genau dann einen Wahrheitswert zurück, wenn n eine Mersenne-Primzahl ist .

  3. Lesen Sie eine nicht leere Liste mit n Ganzzahlen aus der Eingabe und geben Sie ihren Median zurück .

    Wenn n gerade ist, verwenden Sie den kleineren der beiden Mittelwerte.

    Zum Beispiel ist der Median der [1 4 3 2]ist 2.

  4. Liest eine Ganzzahl (positiv, negativ oder 0) oder eine Zeichenfolgendarstellung in Basis 10 oder unär, von der Eingabe und gibt ihre Ziffern in negabinär ohne führende Nullen zurück (mit Ausnahme von Eingabe 0).

    Die Ausgabe kann auf eine beliebige Weise formatiert werden (Ziffern, Array, Zeichenfolge usw.).

  1. Rückkehr pneumonoultramicroscopicsilicovolcanoconiosis.

  2. Überprüfen Sie das aktuelle Datum und geben Sie es Happy New Year!gegebenenfalls gemäß dem gregorianischen Kalender zurück.

  3. Wählen Sie pseudozufällig 64 eindeutig zugewiesene Codepunkte aus dem Unicode-Block CJK Unified Ideographs Extension-A (U + 3400 - U + 4DB5) aus und geben Sie die Zeichenfolge der entsprechenden Zeichen zurück.

    Alle möglichen Zeichenfolgen sollten die gleiche Wahrscheinlichkeit haben, ausgewählt zu werden.

  4. Lesen Sie zwei Zeichenfolgen druckbarer ASCII-Zeichen aus der Eingabe und geben Sie nur dann einen Wahrheitswert zurück, wenn das Zeichen der ersten Zeichenfolge eine Untersequenz der zweiten Zeichenfolge bildet.

    Zum Beispiel abc, axbxcsollte zurückkehren truthy und bac, axbxcsollte zurückkehren falsy.

  1. Lesen Sie ein mehrdimensionales, rechteckiges Array von Ganzzahlen und eine Ganzzahl n aus der Eingabe und geben Sie das geänderte Array mit allen Ganzzahlen multipliziert mit n zurück .

  1. Lesen Sie eine nicht negative Ganzzahl n aus der Eingabe und geben Sie eine Kette von n Zugwaggons zurück, wie unten gezeigt.

    Beispielausgabe für n = 3 :

     ______   ______   ______ 
    |      | |      | |      |
     ()--() ~ ()--() ~ ()--()
    

    Die Ausgabe kann von beliebig vielen Leerzeichen umgeben sein, solange dies wie im Beispiel aussieht.

Klarstellungen

  • 0 ist weder positiv noch negativ.

  • In der Ausgabe ist immer ein nachgestelltes Leerzeichen zulässig.

  • Mehrere Eingaben können in beliebiger Reihenfolge gelesen werden.

Regeln

  1. Keine Antwort kann zwei verschiedene Aufgaben in derselben Programmiersprache lösen. 1

  2. Für jede einzelne Aufgabe gelten die Standardregeln für .

    Insbesondere können Sie Programme oder Funktionen mit den üblichen E / A-Standardeinstellungen einreichen, diese Lücken jedoch nicht ausnutzen .

    Aufgabe 5 ist im Wesentlichen eine Herausforderung in Bezug auf die Daher ist das Hardcodieren der Ausgabe nicht nur zulässig, sondern wird auch erwartet.

  3. Es sollte nur eine Antwort pro Benutzer gepostet werden, die höchstens eine Lösung für jede der Aufgaben enthält.

    Bitte formatieren Sie Ihre Antwort wie im folgenden Beispiel:

    ## Task 1, Python, 42 bytes
    
        <code goes here>
    
    Explanation, I/O, required Python version, etc. go here.
    
    ---
    
    ## Task 7, C, 42 bytes
    
        <code goes here>
    
    Explanation, I/O, required compiler (flags), etc. go here.
    

Wertung

  1. Für jede Aufgabe, die Sie lösen, erhalten Sie einen Punkt.

    Dies bedeutet, dass Sie nicht alle Aufgaben lösen müssen, um teilzunehmen.

  2. Wenn Ihre Lösung für die Aufgabe n die kürzeste in dieser Programmiersprache ist, erhalten Sie einen zusätzlichen Punkt.

  3. Wenn Ihre Lösung für die Aufgabe n die kürzeste aller Programmiersprachen ist, erhalten Sie einen zusätzlichen Punkt.

  4. Die Bonuspunkte werden nur einmal für jede Aufgabensprachenkombination bzw. für jede Aufgabe vergeben.

    Wenn zwei Lösungen die gleiche Byte-Anzahl haben, ist wie üblich die Sendezeit der Verbindungsunterbrecher.

    Wenn Sie später von jemandem übervorteilt werden, verlieren Sie die Bonuspunkte, die der andere Antwortende verdient.

  5. Sie können Golf spielen, Sprachen zu Ihrer Antwort hinzufügen / daraus entfernen oder die für zwei Aufgaben verwendeten Sprachen austauschen.

    Jedes Mal, wenn jemand seine Antwort bearbeitet, werden alle Antworten neu bewertet.

  6. Sobald Sie die Sprache für eine Aufgabe ändern, verlieren Sie das Dienstalter. 2

Die Antwort mit der höchsten Punktzahl gewinnt. 3

Rangliste pro Aufgabe

<style>body{text-align:left!important}#answer-list{padding:10px;width:290px;float:left}#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}</style><script src=https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js></script><link rel=stylesheet href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"><div id=answer-list><table class=answer-list><thead><tr><td>Task<td>Author<td>Language<td>Score<tbody id=answers></table></div><table style=display:none><tbody id=answer-template><tr><td>{{TASK}}<td>{{NAME}}<td>{{LANGUAGE}}<td>{{SIZE}}</table><script>function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function process(){answers.forEach(function(e){var s=e.body_markdown.split("\n").filter(function(e){return"#"==e[0]});s.forEach(function(s){var r=s.match(NUMBER_REG)[0],t=(s.match(SIZE_REG)||[0])[0],a=s.match(LANGUAGE_REG)[1],n=e.owner.display_name;entries.push({task:r,user:n,language:a,size:t})})}),entries.sort(function(e,s){var r=e.task-s.task;return r?r:e.size-s.size});for(var e=0;e<entries.length;e++){var s=jQuery("#answer-template").html();s=s.replace("{{TASK}}",entries[e].task).replace("{{NAME}}",entries[e].user).replace("{{LANGUAGE}}",entries[e].language).replace("{{SIZE}}",entries[e].size),s=jQuery(s),jQuery("#answers").append(s)}}var QUESTION_ID=52152,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",answers=[],page=1;getAnswers();var SIZE_REG=/\d+(?=[^\d&]*(?:&lt;(?:s&gt;[^&]*&lt;\/s&gt;|[^&]+&gt;)[^\d&]*)*$)/,NUMBER_REG=/\d+/,LANGUAGE_REG=/^#*.*?,\s*\[*([^,\]]+)/,entries=[];</script>

Kombinierte Bestenliste (30.07.2015 20:00 UTC)

User / Task      1 2 3 4 5 6 7 8 9 A   TOTAL   Tie breaker (if any)

DLosc            2 2 3 2 2 2 2 3 2 2      22
Sp3000           2 2 2 2 2 3 2 2 2 2      21
Doorknob         2 2 2 2 2 2 2 2 2 2      20
mathmandan       2 2 2 2 2 2 2 2 2 2      20   Combined byte count.
MickyT           2 2 2 2 2 2 1 2 2 2      19
Alex A.          2 1 2 2 2 2 1 2 2 2      18
Jacob            2 2 2 2 2 1 0 0 0 2      13
alephalpha       2 2 2 0 2 2 0 0 2 0      12
Martin Büttner   2 0 0 2 2 0 0 2 2 2      12   Combined byte count.
kirbyfan64sos    1 2 2 0 2 X 0 2 0 3      12   Per-language wins.
Maltysen         3 0 0 0 3 2 1 X 2 0      11
plannapus        2 2 0 0 2 2 0 2 0 2      10
jimmy23013       0 0 2 3 0 0 3 2 0 0      10   Solved tasks.
Tom              0 3 0 0 2 2 0 X 3 0      10   Combined byte count.
FryAmTheEggman   1 0 2 0 2 0 2 0 2 0       9
Vioz-            1 0 2 2 2 2 0 0 0 0       9   Combined byte count.
Toby Speight     2 0 0 0 2 2 0 0 0 2       8
Ismael Miguel    0 0 0 0 2 2 0 0 0 2       6
Pulga            0 2 2 0 0 0 0 0 0 2       6   Combined byte count.
flawr            2 0 2 0 0 0 0 0 0 0       4     
manatwork        2 0 0 0 0 2 0 0 0 0       4   Combined byte count.
TheNumberOne     1 0 0 0 2 0 0 0 0 0       3

Mit gekennzeichnete Aufgaben Xsind vorhanden, aber ungültig.

Die kombinierte Bestenliste wurde in Handarbeit erstellt. Bitte teilen Sie mir mit, ob Fehler vorliegen.


1 Sprachen gelten als unterschiedlich, wenn es sich nicht um verschiedene Versionen derselben Sprache handelt. Es gibt also nur ein JavaScript, ein Python und ein TI-BASIC, aber C, C ++, Octave und MATLAB sind vier verschiedene Sprachen.

2 Wenn Sie Aufgabe n mit Sprache L in x Bytes lösen , jemand anderes dieselbe Aufgabe in derselben Sprache mit derselben Byteanzahl löst, Sie zu Sprache M wechseln und Ihre Bearbeitung zurücksetzen, behält der andere Antwortende den Bonuspunkt.

3 Die Anzahl der Punkte, die nach den Bewertungsregeln 1, 2 und 3 (in dieser Reihenfolge) erzielt wurden, die kombinierte Byteanzahl aller gelösten Aufgaben (niedriger ist besser) und schließlich die Stimmenzahl (höher ist besser) dienen als Tiebreaker.

Dennis
quelle
6
Zur Verdeutlichung ist diese Herausforderung auf diejenigen beschränkt, die mindestens 10 Sprachen beherrschen. Ich bitte um ... einen Freund ...
Vijrox
2
@VijayRamamurthy: Sie müssen nicht alle Aufgaben lösen, um teilzunehmen. Wenn Sie also nur eine Aufgabe lösen, müssen Sie nur eine Sprache beherrschen.
Alex A.
2
@JoeZ .: Wir hatten hier einige 9-Loch-Herausforderungen, aber diese erzielten Einträge durch die kombinierte Anzahl von Bytes. Nicht, dass meine Wertung in irgendeiner Weise damit zusammenhängt, wie Zehnkämpfe gewertet werden, aber ich wollte klarstellen, dass dies eine andere Art von Herausforderung ist.
Dennis
4
@lolesque: Das wäre eine Standard-Code-Golf-Herausforderung. Der springende Punkt ist, für jede Aufgabe eine andere Sprache zu verwenden.
Dennis
3
@NotthatCharles: Ich habe Gregory gefragt und er hat gesagt, der 1. Januar.
Dennis

Antworten:

5

Aufgabe 1, GolfScript, 8 Bytes

~,{+}*.*

Gleiche Idee wie Martins CJam- Antwort.


Task 2, QBasic, 74, 71 Bytes

INPUT a
r=a>1
FOR i=2 TO a-1
r=r*(a MOD i)
NEXT
?r*((a\2AND a)=a\2)

Getestet auf QB64 mit deaktivierter Syntaxerweiterung. 1 Der Großteil des Programms testet, ob die angegebene Zahl aeine Primzahl ist, indem amod für jede Zahl 2 <= i<genommen aund die Ergebnisse multipliziert werden. Das Ergebnis ist r0, wenn die Zahl keine Primzahl ist, andernfalls ungleich Null. In der letzten Zeile wird bitweise ANDmit ganzzahliger Division durch 2 geprüft, ob die Binärdarstellung von aalle Einsen ist, dh adie Form 2 n -1 hat. Multiplizieren mit rergibt 0 (falsch), wenn eine Zahl keine Mersenne-Primzahl ist, und andernfalls einen Wert ungleich Null (wahr). ?ist eine Abkürzung für PRINT.

Die größte von mir getestete Mersenne-Primzahl, 8191, gibt ein Ergebnis von - 1.#INFwas immer noch wahr ist! (Ich habe mit einer IFErklärung nachgesehen , um sicherzugehen.)

1 Dies ändert nichts an der Semantik des Programms. Wenn Sie den obigen Code in DOS QBasic eingeben, wird er automatisch mit zusätzlichen Leerzeichen formatiert, läuft aber genauso.


Aufgabe 3, Pyth, 6 Bytes

ehc2SQ

Liest eine Liste im Python-Stil aus stdin. Die Hauptmagie hier ist der cHop-Operator: Wenn ein Int und eine Liste gegeben sind, wird die Liste in n Teile geteilt. So c2SQhackt die sortierte Eingabeliste in zwei Hälften. Wenn die Länge ungerade ist, ist die erste Hälfte die größere, sodass der Median immer das letzte Element der ersten Hälfte ist. Dies ist der Endpunkt eder hSchnittergebnisse.


Task 4, CJam, 26 Bytes

ri{_2%z\_0>\-2/_3$+?}h;]W%

Ich vermute, das könnte verkürzt werden.

Algorithmus:

  • Ganzzahl lesen.
  • Mach solange der Wert nicht 0 ist:
    • Nimm abs (i% 2). Dies ist die nächste Ziffer (Negabit?).
    • Dividiere i durch -2.
    • Wenn ich nicht positiv war, addiere abs (i% 2) zum Ergebnis. Dies ist, um einen Eckfall zu korrigieren: 3 geht zu -1, aber -3 sollte zu 2 gehen, nicht zu 1.
  • Lassen Sie die überflüssige 0 fallen, sammeln Sie den Stapel in einem Array, kehren Sie ihn um und drucken Sie ihn aus.

Die Tatsache, dass es sich um eine do-while-Schleife handelt, kümmert sich um den Fall 0.


Aufgabe 5, Bash, 50 Bytes

echo pneumonoultramicroscopicsilicovolcanoconiosis

Nicht viel zu erklären.


Aufgabe 6, Python, 78 Bytes

from datetime import*
d=date.today()
if d.day<2>d.month:print"Happy New Year!"

Benötigt Python 2. Pythons Operatoren für verkettete Ungleichungen können hier gut ausgenutzt werden.


Task 7, ActionScript, 82 Byte

x=""
while(x.length<64){c=chr(13312+random(6582));if(x.indexOf(c)<0)x+=c}
trace(x)

ActionScript gehört zur ECMAScript-Familie. Für diesen Code ist ActionScript 2 erforderlich - viel besser für Code-Golf, da ich veraltete Funktionen wie chranstelle von Version 3 verwenden kann String.fromCharCode!

Die Ausgabe erfolgt im Konsolenfenster:

Task 7 Screenshot


Task 8, Pip, 9 19 Bytes

Die Regex-Lösung hat nicht ganz funktioniert, daher hier eine mit Zeichenfolgenoperationen.

Fcab@>:o&:(b@?c)+1o

Github-Repository für Pip .

Nimmt die beiden Zeichenfolgen als Befehlszeilenargumente. Wann aist eine Untersequenz, gibt eine positive ganze Zahl aus (wahr); Andernfalls ist das Ergebnis null (falsch), was zu keiner Ausgabe führt.

Erläuterung:

                     Cmdline args -> a,b; o = 1 (implicit)
Fca                  For each character in a:
           b@?c      Find character's index in b (nil if not found)
          (    )+1   Add 1; all possible indices except nil are now truthy
       o&:           Logical AND with o
   b@>:              Slice b to everything at index o and afterward (Python b=b[o:])
                     (If c wasn't found, b becomes nil, but we don't care at that point)
                  o  Auto-print o

Aufgabe 9, Prolog (SWI), 68 Bytes

m(L,N,R):-L=[H|T],m(H,N,I),m(T,N,U),R=[I|U];L=[],R=[];R is L*N.

Prolog ist im Codegolf normalerweise überhaupt nicht konkurrenzfähig, daher bin ich mit dieser Lösung ziemlich zufrieden.

Definiert ein Prädikat m mit Eingabeparametern Lfür die Liste sowie Nfür die Anzahl und den Ausgabeparameter R. Die Definition von mist eine dreifache Disjunktion:

  • Wenn Ldies vereinheitlicht werden kann [H|T], handelt es sich um eine Liste mit mindestens einem Element. Rufen Sie mrekursiv den Kopf und das Ende dieser Liste auf und setzen Sie die Ergebnisse erneut zu einer neuen Liste zusammen, die mit vereinheitlicht ist R.
  • Wenn Lmit vereinigt werden kann, vereinige []dich auch Rmit [].
  • Andernfalls Lwird angenommen, dass es sich um eine Zahl handelt. L*Nwird berechnet und zugeordnet R.

Beispiellauf unter swiplUbuntu:

dlosc@dlosc:~/golf$ swipl -qs arrayMult.prolog
?- m([1,2,3],5,R).
R = [5, 10, 15] .

?- m([[3,4],[5,6]],3,R).
R = [[9, 12], [15, 18]] .

?- m([[[1,2],[3,4]],[[5,6],[7,8]]],2,R).
R = [[[2, 4], [6, 8]], [[10, 12], [14, 16]]] .

Task 10, C, 114 112 106 Bytes

#define F;printf("\n");for(i=0;i<c;i++)printf(
i;t(c){F" ______  ")F"|      | ")F" ()--() ~");putchar(8);}

Getestet mit gccauf Ubuntu. Definiert eine Funktion t, die ein ganzzahliges Argument akzeptiert. Verwendet drei forSchleifen zur Ausgabe, die durch Makromissbrauch stark komprimiert werden. Die Verwendung des Rücktastenzeichens zum Löschen eines abschließenden Zeichens ~führt zu einem merkwürdigen Leerzeichenmuster, jedochThe output may be surrounded by any amount of whitespace as long as it looks like in the example.

Beispiellauf von t(3):

dlosc@dlosc:~/golf$ ./a.out

 ______   ______   ______
|      | |      | |      |
 ()--() ~ ()--() ~ ()--() dlosc@dlosc:~/golf$
DLosc
quelle
Leider identifiziert sich Ihr Code für Aufgabe 8 a.cals eine Untersequenz von abc.
Dennis
@Dennis Das ist bedauerlich. (Guter Fang, danke.) Behoben, zu einem Preis von 10 Bytes.
DLosc
17

Huzzah, zuerst alle Aufgaben zu erledigen! \O/

Task 1, Perl, 32 Bytes

$_=eval join"+",map$_**3,0..$_-1

+1 Byte für das -pFlag. Kommentar: Perl ist komisch .


Task 2, CJam, 14 Bytes

{_mp\)2mL_i=&}

Mein erstes CJam-Programm!


Aufgabe 3, GolfScript, 8 Bytes

~$.,(2/=

Eval STDIN eingeben, sortieren, Länge nehmen, dekrementieren, durch zwei teilen und dann das Element des sortierten Arrays an diesem Index nehmen.


Aufgabe 4, Python, 77 Bytes

def f(i,d=''):
 while i:i,r=i/-2,i%2;i+=r<0;r+=2*(r<0);d=`r`+d
 return d or 0

Vielen Dank an @ mbomb007 für das Abschneiden von 24 (!) Bytes und an @ Sp3000 für weitere 11 Bytes.


Task 5, Java, 66 Bytes

String f(){return"pneumonoultramicroscopicsilicovolcanoconiosis";}

Langweilig. Hier wurde eine ausführliche Sprache deaktiviert, um später mehr Platz für Golfspieler-Sprachen zu haben.


Aufgabe 6, Bash, 39 Bytes

((`date +%j`<2))&&echo Happy New Year\!

Vielen Dank an @manatwork, dass Sie mir das beigebracht haben %jund dabei 10 Bytes gespart haben.


Aufgabe 7, JavaScript, 148 Bytes

a=[];Array(65).join('x').replace(/./g,function(){while(a.push(s=String.fromCharCode(13312+Math.random()*6582))&&a.indexOf(s)==s.length-1);return s})

Generieren Sie eine Zeichenfolge mit 64 xZeichen und ersetzen Sie diese durch eine Rückruffunktion, die ein zufälliges Zeichen zurückgibt, sofern es nicht bereits im Array der verwendeten Zeichen enthalten ist.


Aufgabe 8, Rust, 130 Bytes

fn f(a:String,b:String)->bool{let mut c=b.chars();for x in a.chars(){match c.find(|&y|x==y){Some(_)=>(),None=>return false}};true}

Ja, Rust spielt sehr schlecht.


Aufgabe 9, Strauß, 18 Bytes

{:n;'`\d+`{~n*}X~}

Version 0.7.0 . Untersucht das Array, ersetzt einen regulären Ausdruck, um die Zahlen in ihre multiplizierten Versionen zu ändern, und wertet dann die resultierende Zeichenfolge erneut aus.


Aufgabe 10, Ruby, 58 Bytes

->n{([' ______  '*n,'|      | '*n,' ()--() ~'*n]*$/).chop}

"\n"ist ein Zeichen länger als "{actual newline}", das ist ein Zeichen länger als $/. Vielen Dank an @ MartinBüttner für das Abschneiden von {unbestimmten aber großen} Bytes mit verschiedenen Tricks der schwarzen Magie.

Türknauf
quelle
Aufgabe 6 - $(…)`…`.
Manatwork
@manatwork Danke, bearbeitet.
Türklinke
Denken Sie noch einmal darüber nach (Koffeinaufnahme läuft…), warum dieses lange% D-Format? [ `date +%j` = 001 ]Oder sogar ((`date +%j`<2)). (Vorausgesetzt, GNU dateunterstützt das Format "% j day of year (001..366)".)
manatwork
@manatwork Ooh, sehr nett. Nochmals vielen Dank, um zu antworten.
Türknauf
Aufgabe 4 kann mit dem Alg ((num + 0xAAAAAAAA) ^ 0xAAAAAAAA) gekürzt werden.
Jacob
15

Task 1, 3var, 14 13 Bytes

'><k*>#aa/>sp

( Esolang-Wiki-Seite für 3var )

'                  R = n
 >                 A = n
  <k               B = n-1
    *              R = A*B = n(n-1)
     >             A = n(n-1)
      #aa          B = 2
         /         R = A/B = n(n-1)/2
          >s       A = (n(n-1)/2)^2
            p      Output A

Erfolgt die Eingabe über einen Codepunkt, z. B. ist das Leerzeichen 32.

Glücklicherweise sind alle Operationen, die wir zum Implementieren der Formel benötigen, n^2 (n-1)^2 / 4einzelne Zeichen (Dekrementieren, Multiplizieren und Quadrieren), doch es dauert 3 Bytes, bis sie Bauf 2 gesetzt sind (Zurücksetzen, Inkrementieren, Inkrementieren).


Aufgabe 2, Retina, 38 33 Bytes

^
1
^(..|.(..+)\2+|(.(..)+)\3*)$
<empty>

( Github-Repository für Retina )

Jede Zeile wird in einer eigenen Datei abgelegt, aber Sie können das oben beschriebene wie es ist mit dem -sFlag testen (durch <empty>nichts ersetzen ). Die Eingabe sollte mit 1s unär sein, zB 1111111für 7.

Hier ist, was jede reguläre Ersetzung (angegeben durch ein Paar von Zeilen) bewirkt:

  1. Tack auf eine zusätzliche 1 nach vorne
  2. Ersetzen Sie etwas von der Form 2, 1 + compositeoder not power of 2mit nichts.

Dies fügt 1Mersenne-Primzahlen ein Extra hinzu , während jede andere Zahl ausgelöscht wird.


Aufgabe 3, Schläger, 71 Bytes

#lang racket
(define(m x)(list-ref(sort x <)(quotient(-(length x)1)2)))

Lisp-ähnliche Sprachen sind einfach zu wortreich. Beispiellauf:

> (m `(1 3 4 2))
2

Aufgabe 4,> <>, 31 Bytes

:?!v:2%:@-02-,
)?~\l1
!;n>l?

( Esolang-Wiki-Seite für> <> )

Das obige ist 28 Bytes und erfordert das -vFlag im Python-Interpreter für weitere 3 Bytes , z. B. wie ausgeführt

$ py -3 fish.py negabinary.fish -v -137
10001011

Das Schöne an> <> ist, dass wir die Ziffern einzeln über Modulo und Division berechnen können. Dies gibt die Ziffern in umgekehrter Reihenfolge wieder, ideal zum Ausdrucken eines Stapels.


Aufgabe 5, Parenthetic, 1448 - 1386 Bytes

((()()())(()()()())((()())((()(())()))((()(())(())())((()(()))(()(())())((()(()))((())())((()()(()))((())()()()()()()()())((())()()()()()()()()()()()())))))))((()()())(()()())((()())((()(())()))((()()()())((()(()))(()(())())((())()()()()()()()()()()())))))((()(()))((()()())((())()()()()))((()()())((())()()))((()()()())((())()()()()))((()()())((())()()()()()()()()()))((()()())((())()))((()()())((())()()()))((()()())((())()()))((()()())((())()()()))((()()())((())()()()()()()()()()))((()()())((())))((()()())((())()()()()()()()()))((()()())((())()()()()()()))((()()()())((())))((()()())((())()))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()()()()))((()()())((())()()()))((()()())((())()()()()()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()()()))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()()()()()))((()()()())((())()()()()()()()()))((()()())((())))((()()()())((())()()()()()()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()()()()()()()()()))((()()())((())()()()))((()()())((())))((()()()())((())()()))((()()()())((())))((()()())((())()()))((()()())((())()()()))((()()()())((())()()))((()()())((())()()()))((()()())((())()()))((()()()())((())()()()()()()()()))((()()())((())()()()))((()()())((())()()()()()()()))((()()()())((())()()()()()()()()))((()()())((())()()()()()()())))

( Github-Repository für Parenthetic )

Ich habe eine CJam-Antwort darauf, die kürzer ist als die Zeichenfolge selbst, aber ich kann sie nicht verwenden, also dachte ich, ich würde in die andere Richtung gehen.

Python 3-Generierungscode:

char97 = "((()()())(()()()())((()())((()(())()))((()(())(())())((()(()))(()(())())((()(()))((())())((()()(()))((())()()()()()()()())((())()()()()()()()()()()()())))))))"
char108 = "((()()())(()()())((()())((()(())()))((()()()())((()(()))(()(())())((())()()()()()()()()()()())))))"
open_str = "((()(()))"
close_str = ")"

target = "pneumonoultramicroscopicsilicovolcanoconiosis"
output = [char97, char108, open_str]

for c in target:
    if ord(c) >= 108:
        output.append("((()()())((())%s))"%("()"*(ord(c)-108)))
    else:
        output.append("((()()()())((())%s))"%("()"*(ord(c)-97)))

output.append(close_str)
print("".join(output))

Hier ist der entsprechende Lisp-ähnliche Code:

(define f (lambda (n) (char (+ n 97))))
(define g (lambda (n) (f (+ n 11))))

(+
   (g 4)  // p
   (g 2)  // n
   (f 4)  // e
   ...
)

Anscheinend war es in Ordnung, definemit dem Namen gas zu überschreiben ()(), wodurch eine Menge Bytes gespart wurden.


Task 6, CJam, 26 Bytes

XY]et1>>"Happy New Year!"*

Überprüft, ob der [month day]Teil des lokalen Zeitarrays kleiner als ist [1, 2].


Aufgabe 7, Python, 73 Bytes

from random import*
print(*map(chr,sample(range(13312,19894),64)),sep="")

Nur eine einfache Python 3-Implementierung.


Aufgabe 8, Vorspiel, 46 41 Bytes

?(?)#(#)?(v-(#)?)10)!
      ^      1 # (0

( Esolang-Wiki-Seite für Prelude )

Ich denke, das funktioniert - es ist wahrscheinlich immer noch golffähig, aber ich spiele zum ersten Mal nicht-trivial Golf in Prelude. Das Eingabeformat ist <needle>NUL<haystack>, wo NUList 0x00. Dies funktioniert am besten mit NUMERIC_OUTPUT = Truedem Python-Interpreter, da er dann ausgegeben 1oder 0entsprechend angepasst wird.

Ich habe Prelude gewählt, weil es zwei Eigenschaften gibt, die es für diese Aufgabe sehr schön machen:

  • Es ist stapelbasiert, sodass Sie zuerst die Nadel einlesen und dann den Heuhaufen einzeln verarbeiten können
  • Preludes Stapel hat eine unendliche Zahl von 0s am unteren Rand, so dass Sie nicht den Fall behandeln müssen, in dem der Nadel die Zeichen ausgehen.

Dies wäre noch besser gewesen, wenn Prelude einen NOT-Operator hätte.

Hier ist die Aufteilung:

?(?)#    Read input up to the NUL, discarding the NUL afterwards

(#)      Move the needle to the second voice, effectively reversing the stack
 ^

?(...?)  Read haystack

  v-     Compare top needle char with haystack char by subtraction

  (#)    If equal, pop the needle char
   1 #

10)!     Output 1 if the top needle char is 0 (bottom of stack), 0 otherwise
(0

(-5 Bytes dank @ MartinBüttner)


Aufgabe 9, Mathematica, 4 Bytes

#2#&

So etwas 2 {{0, 1}, {1, 0}}ist in Mathematica implizit eine Multiplikation, also werden die Argumente einfach nebeneinander gestellt.

Wie von @MartinButtner und @alephalpha bemerkt , 1##&ist eine weitere 4-Byte-Antwort. Für eine Erklärung siehe erstere.


Task 10, Rail, 246 237 Bytes

$'main'
 0/aima19-@
@------e<
         -(!!)()[ ][ ______ ]{f}[\n\]o()[ ][|      |]{f}[\n\]o()[~][ ()--() ]{f}#
$'f'                 #           #
 -(!x!)(!y!)(!!)()0g<  -(x)o()1g<  -(y)o()1s(y)(x){f}#
                     -/          -/

( Esolang-Wiki-Seite für Rail )

Die Gelegenheit, eine zugbezogene Aufgabe in Rail zu erledigen, konnte ich mir nicht entgehen lassen :) Das Leerzeichen sieht ziemlich gut aus, aber da die Verzweigung drei Zeilen in Anspruch nimmt, ist die Komprimierung ein bisschen mühsam.

Die Eingabe ist eine Ganzzahl über STDIN, es muss jedoch eine EOF geben. Der obere linke Teil

 0/aima19-@
@------e<

ist eine atoi-Schleife, die die Eingabe in eine Ganzzahl umwandelt, während sie nicht EOF ist (von der eAnweisung geprüft ).

Die Funktion fin den letzten drei Zeilen nimmt die durch getrennten x, y, nZeichenfolgenzeiten auf und gibt x nsie aus y. Die Funktion ist rekursiv und nwird jedes Mal um eins dekrementiert, bis sie Null wird. fwird dreimal aufgerufen und liefert unterschiedliche Zeichenfolgen für jede Zeile. Merkwürdigerweise lässt Rail zu, dass Variablennamen leer sind, was einige Bytes einspart.

Leider kommen (!x!)die meisten Bytes von , die den oberen Bereich des Stapels öffnen und ihn einer Variablen zuweisen x, und (x)die xauf den Stapel drücken. Dies ist erforderlich, da Rail keinen doppelten Operator enthält. Dies ist (!x!)(x)(x)die einzige Möglichkeit, den oberen Bereich des Stapels zu kopieren.

Sp3000
quelle
Wenn Aufgabe 2 in rs wäre, würden Sie 2 Bytes sparen, und es würde nur 14 Bytes kosten, um Zahlen anstelle von unary zu nehmen. ;)
kirbyfan64sos
Als ich Schläger sah, dachte ich, dass Sie Klammern mögen; aber in Klammern ...
BunyaCloven
13

Task 1, CJam, 7 Bytes

q~,:+_*

Ich wollte nur die (vermutlich) optimale CJam-Lösung dafür finden. Sie nutzt die Tatsache, dass die Summe der ersten n Würfel das Quadrat der n-ten Dreieckszahl ist, die selbst die Summe der ersten n ganzen Zahlen ist.

Teste es hier.


Aufgabe 4, Spaltung, 173 88 78 69 68 Bytes

GitHub-Repository für Fission.

 /@\O/S@+>\
^{ }[<X/ @/;
,\?/@\J^X\
'M~\$ $
UK/W%@]  /
D
?\{\/
0'A Y

Mein zweites ziemlich kompliziertes Fission-Programm. :)

Das Eingabeformat ist etwas komisch. Um negative Eingaben zu unterstützen, wird erwartet, dass das erste Zeichen entweder das Vorzeichen ist +oder dieses -anzeigt. Der Bytewert des zweiten Zeichens ist dann die Größe der Eingabe (da Fission Dezimalzahlen nicht nativ lesen kann). Also, wenn Sie möchten 111, würden Sie es +oauf STDIN weitergeben. Und wenn Sie wollen, geben -56Sie es weiter -8. Anstelle von +und können -Sie ein beliebiges Zeichen mit einem niedrigeren oder höheren Zeichencode verwenden. Dies kann hilfreich sein, wenn Sie etwas wie -n(das Sie echomöglicherweise als Argument behandeln) übergeben, z 0n.

Schauen wir uns an, wie wir die negabinäre Darstellung einer positiven Zahl finden können. Wir wollen die Zahl vom niedrigsten zum höchstwertigen Bit berechnen (wir werden diese Bits auf einen Stapel schieben und sie alle am Ende ausdrucken, um sie in der richtigen Reihenfolge zu erhalten). Die erste Ziffer ist dann nur die Parität der Zahl, und wir teilen die Zahl durch 2, um die Verarbeitung fortzusetzen. Die nächste Ziffer ist jetzt negativ (mit dem Wert -2) - es ist jedoch zu beachten, dass dieses Bit immer dann gesetzt wird, wenn das 2-Bit in einer normalen Binärzahl gesetzt würde. Der einzige Unterschied besteht darin, dass wir -2 mit positiv höherwertigen Ziffern kontern müssen. Also, was wir tun, ist das:

  • Wir bestimmen die Parität erneut - dies ist das nächste Negabit - und dividieren durch 2 wie zuvor.
  • Wenn diese Ziffer a war 1, erhöhen wir die verbleibende Zahl um 1, um dem negativen Bit entgegenzuwirken (die Differenz zwischen einem Negabit und einem Bit ist einmal der Wert des nächsten höherwertigen Bits).

Eine große Vereinfachung der Code Ergebnisse zu bemerken , dass eine Zugabe bedingt hier entspricht die Anzahl von Rundungs up , wenn ganzzahlige Teilung (wenn der verworfene Bit 1 ist, haben wir das ganze Zahl geteilten Ergebnis um 1 erhöht).

Dann ist das nächste Bit wieder nur ein positiver Wert, damit wir es normal bestimmen können. Das heißt, wir möchten eine Schleife, die jeweils zwei Bits berechnet und für die verbleibende Zahl abwechselnd auf- und abgerundet. Wir möchten die Schleife jedoch in der Mitte eingeben, damit wir mit dem Abrunden beginnen.

Wie können wir mit negativen ganzen Zahlen umgehen? Das Problem ist, dass Fission mit negativen ganzen Zahlen nicht wirklich willkürlich rechnen kann, weil Massen immer nicht negativ sind. Man müsste also etwas wirklich Kompliziertes tun, wie mit der Größe zu arbeiten und das Zeichen woanders zu verfolgen. Die Negabindarstellung einer negativen Zahl kann jedoch auf der Grundlage einer zugehörigen positiven Zahl berechnet werden:

Wenn n negativ ist, berechnen die negabinary Darstellung von n / 2 (gerundet up ) und die Parität der append n .

Dies ist genau der erste Schritt unserer Zwei-Bit-Schleife. Wir müssen die Schleife also nur an einer anderen Stelle starten, wenn das Vorzeichen negativ ist.

Die meisten Einsparungen aus den 173 ursprünglichen Bytes stammten aus diesen Erkenntnissen, die es mir ermöglichten, drei Paritätsprüfungen und eine zweiteilige Schleife mit einer einzigen Paritätsprüfung zu einer einzigen Schleife zusammenzufassen.

Dieser Beitrag wird zu lang, wenn ich den gesamten Code im Detail erkläre, aber ich werde auf einige Abschnitte hinweisen, um das grobe Layout des Kontrollflusses zu erläutern, und Sie können die Details mit der Fission-Referenz herauspuzzeln.

 /@\
^{ }[
,\?/
'
U
D
?

Ausgehend von Dliest dies ein Vorzeichen in die Energie und die Größe in die Masse eines Atoms, das in das [(nach rechts gehende) endet . Dieses Vorzeichenbit wechselt nach jedem Durchlauf durch die Paritätsprüfung und bestimmt, ob die abgerundete oder aufgerundete Hälfte der Schleifeneingabe erhalten bleibt.

     /S@+>\
    [<X/ @/
 \  @\J^X\
 M  $ $
 K  %@]  /

Dies ist die Schleife, die die einzelnen Bits berechnet und die richtige Hälfte in die nächste Iteration einspeist. Die Sund Jwerden verwendet, um eine Kopie der rechten Hälfte basierend auf dem aktuellen Vorzeichenbit zu erstellen, die Xs führen das Kopieren durch. In >der oberen rechten Ecke wird das tatsächliche Bit berechnet, das dann an den Stapel gesendet wird K, um später abgerufen zu werden. Ich denke, das Layout der oberen rechten Ecke ist ziemlich geschickt und es lohnt sich auf jeden Fall, im Detail zu studieren, wenn Sie sich für Fission interessieren.

Dies %ist ein Schalter, der die Nummer in die Schleife zurückführt, solange sie größer als 0 ist.

    O


 M~\
 K/W%

 \{\/
0'A Y

Sobald die Zahl 0 erreicht, wird sie stattdessen nach unten reflektiert. Dies startet eine weitere Schleife, die die Bits vom Stapel abruft, sie zum Zeichencode von hinzufügt 0und mit druckt O. Das Programm wird beendet, sobald der Stapel leer ist, da das Kontrollatom auf den Stapel geschoben wird (und danach keine beweglichen Atome mehr vorhanden sind).


Aufgabe 5, Vorspiel, 219 179 96 Bytes

Esolangs Seite für das Präludium.

Stack Snippet Interpreter für Prelude.

29+129+716705-7607-05-4759+705-14129+05-18705-29+719+05-1507-19+39+449+767549+03-68(67+^+^+^++!)

Dies begann als handgefertigtes Standard-Prelude-Programm mit fester Ausgabe und drei Stimmen. Nach einigem Plaudern mit Sp3000 habe ich beschlossen, eine einzelne Stimme zu testen. Es stellte sich heraus, dass dies recht gut funktionierte, da es viel einfacher ist, ältere Buchstaben wiederzuverwenden. Dann gab Dennis mir ein paar Tipps und ich fand die aktuelle Version: Die Idee ist, alle Offsets des Briefes hin umgekehrter Reihenfolge auf den Stapel einer einzelnen Stimme zu schieben und sie dann einzeln in einer Schleife zu drucken. hwird gewählt, weil hdie Zeichenfolge keine enthält (was wichtig ist - andernfalls würde der 0Offset die Schleife beenden) und weil die Codierung der Offsets in Form von zweistelligen und negativen Offsets minimiert wird.

Die Offset-Codierung wurde mit diesem CJam-Skript generiert .


Aufgabe 8, Mathematica, 28 Bytes

LongestCommonSequence@##==#&

Yay für Einbauten. (Die Benennung von Mathematica ist hier etwas seltsam ... LongestCommonSubsequencefindet die längste gemeinsame Teilzeichenfolge, während LongestCommonSequencedie längste gemeinsame Teilzeichenfolge gefunden wird .)


Aufgabe 9, J, 1 Byte

*

Das Gleiche wie die Antworten von APL und K, aber es scheint, dass noch niemand J genommen hat.


Aufgabe 10, Retina, 67 60 Bytes

GitHub-Repository für Retina.

(.*).
 ______  $1<LF>|      | $1<LF> ()--() ~$1
+`(.{9})1
$1$1
~$
<empty>

Jede Zeile wird in eine separate Datei geschrieben und <LF>sollte durch ein Zeilenumbruchzeichen ersetzt werden und <empty>eine leere Datei sein. Sie können all dies auch in eine einzelne Datei -spacken und die Option verwenden, aber das erlaubt noch nicht das Einbetten von Zeilenumbrüchen anstelle von Zeichen <LF>. Sie könnten das nachahmen, indem Sie so etwas tun

echo -n "111" | ./Retina -s train.ret | ./Retina -e "<LF>" -e "\n"

Wie das obige Beispiel zeigt, wird erwartet, dass die Eingabe unär ist. Die Idee des Codes besteht darin, drei Kopien der unären Eingabe (minus 1) mit jeweils einer Kopie der entsprechenden Zeile zu erstellen. Dann duplizieren wir wiederholt die letzten neun Zeichen vor a, 1bis alle 1s verschwunden sind, und wiederholen dabei die Zeilen nach Bedarf. Zum Schluss entfernen wir das überflüssige Nachlaufen ~.

Martin Ender
quelle
10

Ich werde mit einem Paar anfangen, denke ich. Zum ersten Mal Golf spielen.

Aufgabe 1, Python, 38 21 Bytes

lambda n:(n*n-n)**2/4

Summiere eine Liste aller Würfel bis zu x. Ausdruck geändert dank xnor

Task 2, TI-Basic 89, 244 Byte

Func
If iPart(log(x+1)/log(2))=log(x+1)/log(2) Then
 Return log(x+1)/log(2)
Else
 Return 0
EndIf
EndFunc
Func
If isPrime(x)=false
 Return 0
If ipart(log(x+1)/log(2))=log(log(x+1)/log(2)) Then
 Return log(x+1)/log(2)
Else
 Return 0
EndIf
EndFunc

Nicht 100% sicher in diesem Fall, teste ich, wenn ich neue Batterien für meinen Taschenrechner finde. isPrime ist ein eingebauter, ipart ist ein ganzzahliger Teil (2.3 -> 2)

Aufgabe 3, Perl, 45 34 Bytes

@n=sort{$a-$b}@ARGV;print$n[$#n/2]

Perl-Datei 1 2 3 4 -> 2. Sparte dank @nutki ein paar Bytes. Wird gedruckt, anstatt als Variable zu speichern und dann als Variable zu drucken.

Aufgabe 4, Ruby, 43 40 Bytes

x=2863311530
p ((gets.to_i+x)^x).to_s(2)

Zumindest funktioniert es in 1.9, keine Ahnung von 1.8. In der Binärdarstellung ist '10' * 16 (oder 2863311530) plus eine Zahl x oder mit dieser 10101010 ... die Negbinärdarstellung. Gibt eine Zeichenfolgendarstellung mit Anführungszeichen aus (3 -> "111" anstelle von 3 -> 111). Mathe kann nicht gefunden werden, um x in weniger Zeichen zu schreiben.

Task 5, Malbolge, 682 354 Bytes

D'``_]>n<|49ixTfR@sbq<(^J\ljY!DVf#/yb`vu)(xwpunsrk1Rngfkd*hgfe^]#a`BA]\[TxRQVOTSLpJOHlL.DhHA@d>C<`#?>7<54X8165.R2r0/(L,%k)"F&}${zy?`_uts9Zvo5slkji/glkdcb(fed]b[!B^WVUyYXQ9UNrLKPIHl/.JCBGFE>bBA@"!7[;{z276/.R2r0)(-&J$j('~D${"y?w_utyxq7Xtmlkji/gf,MLbgf_dc\"`BA]\UyYXWP8NMLpPIHGLEiIHGF(>C<A@9]7<;:3W7w5.-210/(L,%k#('~}C{"y?`_uts9wpXn4rkpoh.lNMiha'eGF\[`_^W{h

Test online hier Denken Sie diese so kurz ist , wie es gehen werde. Ich habe so viel Golf gespielt, wie ich konnte. 300 Bytes gespart, ja?

Task 6, Bash, 62 50 40 Bytes

[ `date +%j`=1 ]&&echo 'Happy New Year!'

% J wurde in einem anderen Beitrag entdeckt.

Aufgabe 10, Befunge-98, 121 Bytes

>&:>1-:" ____"v
   |,k8: '"__"<
   >a,$:>1-v
      > |
>' 8k,^ #
^|':k4 '|':<
v ',*25$<
>,:1-: ")(--)("v
^," ~"_@#,k6" "<

Geändert zu befunge-98. Alt war Befunge-93, 227 157 147 Bytes. Benutzte Pilze, geschrieben in Haskell für die Prüfung. Benutzt das "do multiple times k" und fügt mit 'einzelne Zeichen zum Stack hinzu. Ich habe das Gefühl, es kann bis zu 110 oder weniger golfen werden, aber ich habe schon viel zu viel Zeit damit verbracht ...

Jakob
quelle
@ Tennis, da ich nicht nach dem Hauptpost fragen kann, werde ich hier fragen. Ist die durch Leerzeichen getrennte Eingabe für Aufgabe 3 in Ordnung? Es wird nicht in [] sein.
Jacob
Was auch immer Ihren Bedürfnissen entspricht.
Dennis
1
Sie können die Summe des Würfels mit Verkürzung der Formel wielambda n:(n*n-n)**2/4
xnor
Sie können 0=fPart(expression) rather than iPart (expression) = expression` in Ihrer TI-89 BASIC-Antwort verwenden.
Lirtosiast
1
Ich denke, dass dieses Argument nicht gut funktioniert, wenn es um etwas wie Python 2/3 geht. Zum Beispiel, `n` funktioniert besser als str (n) in 2, aber nicht in 3. Ich kann mir momentan keine anderen Beispiele vorstellen, ich bin mehr mit Golfspielen beschäftigt, die mehr antworten: p
Jacob
9

Erste Sache: Aufgabe 6 zählt technisch NICHT ; Ich habe unc vor weniger als einer Stunde hochgeladen . Allerdings habe ich es heute Morgen fast hochgeladen , mich aber dazu entschlossen, zuerst eine Testsuite zu schreiben. Dummkopf.

Also, auf jeden Fall geht es los!

Beachten Sie, dass die meisten Unc-Dinge absichtlich rückwärts sind, also &&wirklich so ||und so, weshalb einige Operationen seltsam aussehen (z. B. mit -, um den Würfel zu berechnen).

Aufgabe 1, Haskell, 21 Bytes

f n=sum$map(^3)[0..n]

Aufgabe 2, Hy, 135 Bytes

(import math)(fn[n](and(if(and(not(% n 2))(> n 2))false(all(genexpr(% n i)[i(->> n(math.sqrt)int inc(range 3))])))(->> n dec(& n)not)))

Aufgabe 3, Dart, 37 Bytes

Meine erste Dart Funktion!

f(l){l.sort();return l[l.length~/2];}

Task 5, INTERCAL, 1047 Bytes

DO ,1 <- #46
DO ,1SUB#1 <- #242
DO ,1SUB#2 <- #152
DO ,1SUB#3 <- #208
PLEASE DO ,1SUB#4 <- #248
DO ,1SUB#5 <- #248
DO ,1SUB#6 <- #192
PLEASE DO ,1SUB#7 <- #128
DO ,1SUB#8 <- #128
DO ,1SUB#9 <- #72
PLEASE DO ,1SUB#10 <- #120
DO ,1SUB#11 <- #8
DO ,1SUB#12 <- #224
PLEASE DO ,1SUB#13 <- #200
DO ,1SUB#14 <- #208
DO ,1SUB#15 <- #32
PLEASE DO ,1SUB#16 <- #208
DO ,1SUB#17 <- #120
DO ,1SUB#18 <- #88
PLEASE DO ,1SUB#19 <- #40
DO ,1SUB#20 <- #8
DO ,1SUB#21 <- #208
PLEASE DO ,1SUB#22 <- #232
DO ,1SUB#23 <- #120
DO ,1SUB#24 <- #208
PLEASE DO ,1SUB#25 <- #248
DO ,1SUB#26 <- #56
DO ,1SUB#27 <- #96
PLEASE DO ,1SUB#28 <- #160
DO ,1SUB#29 <- #208
DO ,1SUB#30 <- #208
PLEASE DO ,1SUB#31 <- #136
DO ,1SUB#32 <- #120
DO ,1SUB#33 <- #192
PLEASE DO ,1SUB#34 <- #112
DO ,1SUB#35 <- #64
DO ,1SUB#36 <- #16
PLEASE DO ,1SUB#37 <- #128
DO ,1SUB#38 <- #48
DO ,1SUB#39 <- #208
PLEASE DO ,1SUB#40 <- #128
DO ,1SUB#41 <- #224
DO ,1SUB#42 <- #160
PLEASE DO ,1SUB#43 <- #40
DO ,1SUB#44 <- #56
DO ,1SUB#45 <- #200
PLEASE DO ,1SUB#46 <- #126
PLEASE DO READ OUT ,1
DO GIVE UP

Aufgabe 6, unc, 157 Bytes

!include>=fgQVb%U<=
!include>=gVZR%U<=
false lRNe[]<<gVZR_g t:=gVZR[5]:volatile gZ m:=-YbPNYgVZR[&t]:for[#m%gZ_Zba||m%gZ_ZQNl!=6]chgf[L'uNccl ARj LRNe#']:>>

Task 8, RS, 42 Bytes

#
+#(.)(.*) .*?\1/\1#\2 
.*# .*$/1
[^1]+/0

Live-Demo.

Aufgabe 10, Pyth, 46 Bytes

jb(j*d2m+\ *\_6Qjdm"|      |"Qj\~m" ()--() "Q)

Live-Demo.

kirbyfan64sos
quelle
@ Tennis Ups! Fest!
kirbyfan64sos
1
Nun, ich weiß es nicht, aber ich bin mir ziemlich sicher, dass Sie keines der !includes brauchen . Nicht ganz sicher, welches.
Dennis
@ Tennis Erstens ist enthalten stdio.h, zweitens ist time.h. Ich brauche beides.
kirbyfan64sos
Womit wird uncder C-Code kompiliert? GCC wird gut funktionieren ohne stdio.h. Ich bin mir nicht sicher time.h.
Dennis
@Dennis unc hat keinen Set-Compiler. Es gibt nur C-Code aus; Ich muss es selbst kompilieren. Aber das tut Sinn machen; Ich werde es später überprüfen.
kirbyfan64sos
8

Aufgabe 1, APL, 7 Bytes

+/3*⍨⍳⎕

Sie können es online mit ngn / apl versuchen , obwohl es mit jeder APL-Implementierung funktioniert, die standardmäßig einen Indexursprung von 0 verwendet.

Dabei wird jede Ganzzahl von 0 an die Eingabe ( ⍳⎕) -1 gewürfelt, indem die Argumente an den Energieoperator ( ) gewechselt werden *. Der resultierende Vektor wird durch Summieren ( +/) reduziert und ein Skalar zurückgegeben.


Aufgabe 2, Julia, 42 Bytes

n->(isprime(n)&&int(log2(n+1))==log2(n+1))

Dadurch wird eine anonyme Funktion erstellt, die eine Ganzzahl als Eingabe akzeptiert und einen Booleschen Wert zurückgibt. Um es zu nennen, geben Sie ihm einen Namen, z f=n->....

Zuerst verwenden wir Julias eingebaute Funktion isprime, um zu überprüfen, ob nes sich um eine Primzahl handelt. Wenn dies der Fall ist, überprüfen wir, ob log2(n+1)es sich um eine Ganzzahl handelt. Wenn ja, nkann wie 2^k-1für einige geschrieben kwerden und ist somit neine Mersenne-Primzahl.


Aufgabe 3, ELI , 19 Bytes

{f:x[<x][~.0.5*#x]}

Dadurch wird eine Monade erstellt f, die den Median des Eingabevektors zurückgibt.

Ungolfed + Erklärung:

{f:         // Define a function f
 x[<x]      // Sort the input vector
 [          // Select the element at index...
 ~.0.5*#x   // ceiling of 0.5 * length(input)
]}

Beispiele:

    f 1 2 3 4
2
    f ?.!20   // Apply f to 20 random integers in 1..20
4

Aufgabe 4, Oktave, 39 Bytes

@(n,x=2863311530)dec2bin(bitxor(n+x,x))

Dadurch wird ein Funktionshandle erstellt, das eine Ganzzahl als Eingabe akzeptiert und die zugehörige Negabinary-Zeichenfolge zurückgibt. Um es aufzurufen, geben Sie ihm zB einen Namen f=@...und führen Sie es mit aus feval(f, <input>).

Sie können es online ausprobieren .


Task 5, CJam, 47 Bytes

"pneumonoultramicroscopicsilicovolcanoconiosis"

Die Zeichenfolge wird einfach auf STDOUT gedruckt. Sie können es online ausprobieren, wenn Sie dazu neigen.


Aufgabe 6, Windows Batch, 46 Bytes

if "%date:~4,5%"=="01/01" echo Happy New Year!

Die Variable %date%enthält das aktuelle Datum im Formular Thu 06/25/2015. Wir können den Monat und den Tag auswählen , indem die Teillängen bekommen 5 , nachdem sie die ersten 4 Zeichen Überspringen: %date:~4,5%. Von dort aus überprüfen wir nur, ob es der 1. Januar ist und sagen Frohes Neues Jahr, wenn es so ist.


Aufgabe 7, Pyth, 26 Bytes

=Gr13312 19895FNU64pC.(.SG

Zuerst weisen wir Gden Bereich 13312 bis einschließlich 19894 zu. Dann schleifen wir 64-mal, und bei jeder Iteration mischen wir G( .SG), entfernen und geben das letzte Element ( .() zurück und drucken seine Zeichendarstellung ( pC).

Sie können es online ausprobieren .


Aufgabe 8, Ruby, 36 Bytes

def f(a,b)!b.tr("^"+a,"")[a].nil?end

Dies definiert eine Funktion, fdie zwei Zeichenfolgen akzeptiert aund bin der asich die Zeichenfolge befindet, die gesucht werden soll b.

Alles außer den Zeichen in awird aus der bVerwendung entfernt .tr()und wir prüfen, ob das Ergebnis agenau using enthält []. Dies wird zurückkehren , nilwenn die Zeichenfolge nicht gefunden, so dass wir einen Booleschen Wert , indem Sie bekommen !mit .nil?.


Task 9, R, 16 Bytes

function(x,n)n*x

Dies schafft ein unbenannte Funktionsobjekt , das jede Art von Anordnung oder Matrix annimmt xund eine ganze Zahl nund multipliziert jedes Element xdurch n. Wenn Sie möchten, können Sie es online ausprobieren .


Task 10, Python 3, 92 Bytes

n=int(input())
l="\n"
w=" ()--() "
print(" ______  "*n+l+"|      | "*n+l+(w+"~")*(n-1)+w)

Ziemlich einfach. Sie können es online ausprobieren .

Alex A.
quelle
Die APL-Antwort ist nicht ganz 7 Bytes, da sich drei Unicode-Zeichen in höheren Bereichen befinden.
Tom
6
@Tom: Jede Antwort kann die bequemste Codierung auswählen. In der APL-Codepage ist ein Zeichen ein Byte.
Dennis
Sie können es online ausprobieren, wenn Sie Lust dazu haben :-D
Luis Mendo
7

Aufgabe 1,> <>, 10 + 3 = 13 Bytes

::*-:*4,n;

Führen Sie dies mit der offiziellen Python-Interpreter unter Verwendung des -vFlags aus (zu einem Preis von 3 Byte). Dies quadriert die Menge (n - n*n)und dividiert durch 4, was natürlich gleichbedeutend ist mit Quadrieren (n*n - n)und Dividieren durch 4.

Task 2, GAP, 63 62 Bytes

b:=function(m)return[2]=AsSet(Factors(m+1))and IsPrime(m);end;

(Sie haben einen Platz gespart, indem Sie die Gleichheit umgekehrt geschrieben haben.)

Aufgabe 3, R, 43, 39 Bytes

f=function(v)sort(v,d=T)[length(v)%/%2]

Vielen Dank an Plannapus für die nette Verbesserung!

Aufgabe 4, Piet, 155 135 115 5 * 19 = 95 Codels

Bildbeschreibung hier eingeben

Testen Sie diesen Online-Dolmetscher mit Codel-Größe 13. Oder verwenden Sie Ihren bevorzugten Dolmetscher - lassen Sie es mich wissen, wenn Sie einen haben, den Sie mögen!

Ausgabe erstellen 00 war unpraktisch, anstelle der leeren Zeichenfolge für die Eingabe . Ich habe am Anfang ein Wenn-Dann verwendet, um mich um diesen Fall zu kümmern. dann eine while-Schleife zum Berechnen der Ziffern in einem Fall ungleich Null und schließlich eine weitere while-Schleife am Ende, um die Ziffern vom Stapel auszugeben.

Vielen Dank an Sp3000 für einige sehr hilfreiche Kommentare, die mir geholfen haben, einige Codels zu speichern!

Aufgabe 5, Lua, 52 Bytes

print"pneumonoultramicroscopicsilicovolcanoconiosis"

Sie können es hier ausprobieren .

Task 6, LaTeX, 157 139 136 127 128 Bytes

\documentclass{book}\begin{document}\count1=\day\multiply\count1 by\month
\ifcase\count1\or Happy New Year!\else~\fi\end{document}

Wenn das Produkt des Tages und des Monats ist 1, drucken Sie die Nachricht aus. sonst nichts. (Neujahr ist für dieses Design besonders praktisch: Da die gesuchte Ausgabe 1nur eine orAnweisung ist , wird nur eine Anweisung benötigt. Die nth- orAnweisung gibt das Verhalten für den Wert ann .)

Hinweis: In meiner vorherigen Version fehlte der Zeilenumbruch, was ein Fehler war. (Ich habe versucht, diese Funktion zu testen, aber es kann eine Weile dauern, bis ich sie richtig getestet habe ...)

Meine ursprüngliche Version verwendete die calc Paket, das viel praktischer war als meine aktuelle Version. Etwas zu beachten für das "echte Leben"!

Aufgabe 7, Ruby, 62 Bytes

for r in Array(13312..19893).sample(64)
puts [r].pack('U*')end

Aufgabe 8, JavaScript, 78 Bytes

h=function(l,m){u=1+m.indexOf(l[0]);return(!l||u&&h(l.substr(1),m.substr(u)))}

Rekursive Lösung, die prüft, ob les sich um eine Teilzeichenfolge von handelt m. Wenn lleer ist, !lführt dies zu trueund die Funktion wird beendet. (In diesem Fall l[0]ist undefiniert, aber JavaScript ist in Ordnung.) Andernfalls wird nach der ersten Instanz von l[0]in gesucht m. Wenn es keine findet, m.indexOf(l[0])führt dies zu -1und damit uzu 0und die Funktion wird beendet.

Andernfalls werden der erste Eintrag von lund die ersten uEinträge von entfernt mund die Überprüfung fortgesetzt.

Task 9, Python, 72 60 Bytes

def i(a,n):
 try:return[i(c,n)for c in a]
 except:return n*a

Drilldown bis zur "untersten Ebene", wo akeine Liste mehr vorhanden ist, sondern nur eine Ganzzahl, und dann Multiplikation.

Vielen Dank an Dennis, der mir 12 Bytes gespart hat!

Task 10, Groovy, 81 Bytes

def j(n){(' ------  '*n+'\n'+'|      | '*n+'\n'+' ()--() ~'*n).substring(0,27*n)}

Probieren Sie es hier aus . Ich habe ursprünglich versucht, so etwas wie die Python- .join()Methode für Strings zu implementieren , bei der Strings mit einem bestimmten "Verbindungsstring" zusammengefügt werden (wie die Verbindungen zwischen Eisenbahnwaggons). Aber das hat viel mehr gekostet als gespart.

Ich hoffe, ich habe keine Konventionen für akzeptable Antworten in diesen verschiedenen Sprachen missachtet.

Vielen Dank an Dennis für eine fantastische Herausforderung!

mathmandan
quelle
except:return n*aspart ein paar Bytes für Aufgabe 9. Für Aufgabe 1 würde ich das -vFlag als ein Byte zählen.
Dennis
@Dennis Siehe diesen Meta-Beitrag . Obwohl Sie durch diesen Meta-Beitrag wahrscheinlich das -vFlag durch ersetzen können i(obwohl ich denke, dass es gut wäre, wenn beide Versionen erwähnt würden, um das Testen zu vereinfachen).
Sp3000,
@ Tennis, vielen Dank für Ihre kluge Verbesserung!
Mathmandan
1
3 Bytes korrekt durch den meta Beitrag oben (space, -, v). Ich meinte nur, dass Sie die Möglichkeit haben, Eingaben als Codepunkt über die iAnweisung zu übernehmen.
Sp3000,
1
Übrigens, für # 4 ist negatives Modulo nicht so seltsam - es variiert nur von Sprache zu Sprache (z. B. macht Java das aus dem Speicher). Eine Möglichkeit, den gesamten Stapel auszugeben, besteht darin, etwas am unteren Rand des Stapels zu belassen, von dem Sie wissen, dass es nicht in der Ausgabe enthalten ist, und Zeichen zu drucken, solange es kein Sonderzeichen ist. Es gibt auch PietCreator .
Sp3000,
6

Aufgabe 1, Pyth, 5 Bytes

s^R3Q

Nimmt die Nummer von stdin. Vielen Dank an @Jakube für den Hinweis auf die Nutzlosen U.

Aufgabe 6, Javascript, 56 Bytes

if(Date().slice(4,10)=="Jan 01")alert("Happy New Year!")

Task 7, CJam, 16 Bytes

6581,mr64<'㐀f+

Erzeugt Reichweite, mischt, wählt die ersten 64 aus und ordnet das Hinzufügen des Startwerts und das Umwandeln in Zeichen zu. 14 Zeichen, 16 Bytes.

Aufgabe 8, Oktave, 23 Bytes

@(x,y)intersect(x,y)==x

Definiert anonyme Funktion.

Aufgabe 5, PHP, 45 Bytes

pneumonoultramicroscopicsilicovolcanoconiosis

Keine Komprimierung, druckt nur.

Task 9, APL 1 Byte

 ×

Das gleiche wie die K-Antwort.

Maltysen
quelle
@Dennis Ich weiß es auch nicht - ich habe nur gegoogelt und diese Antwort zusammengestellt, ohne zu testen :). Ich werde jetzt versuchen, auf einem Emulator zu testen.
Maltysen
@Dennis oh du hast recht, es ist der Durchschnitt der mittleren 2 und nimmt das runter.
Maltysen
1
Was machst du mit diesem Raum .slice(4, 10)?
LegionMammal978
@Dennis derrrp. Es tut uns leid.
Maltysen
1
Es gibt nur eine Monatsabkürzung, die mit "an" endet, sodass Sie das J beim Testen weglassen können. (Es wäre auch deutlich kürzer zu tun /an 01/.test(Date()).)
NinjaBearMonkey
6

Task 1, R, 21 19 Bytes

sum((1:scan()-1)^3)

Ziemliech direkt. Eingabe von STDIN.

Task 2, Perl, 40 66 Bytes

$a=log(<>+1)/log(2)+1;print$a==int($a)&&(1x$a)!~/^1?$|^(11+?)\1+$/

Prim Checker hinzugefügt (Abigails Prim Number Checker Regex)

Aufgabe 3, PARI / GP, 24 22 Bytes

m(v)=vecsort(v)[#v\2];

Zum ersten Mal habe ich das angefasst. Könnte ein bisschen mehr davon lernen müssen.

Task 4, T-SQL, 235 Byte

CREATE FUNCTION D(@ INT)RETURNS TABLE RETURN WITH R AS(SELECT @/-2+(IIF(@%-2<0,1,0))D,CAST(ABS(@%-2) AS VARCHAR(MAX))M UNION ALL SELECT D/-2+(IIF(D%-2<0,1,0)),CAST(ABS(D%-2)AS VARCHAR(MAX))+M FROM R WHERE D<>0)SELECT M FROM R WHERE D=0

Inline-Tabellenfunktion mit rekursivem CTE. Sehr groß, aber macht Spaß.

Benutzen

SELECT * FROM D(18)
M
------
10110

Aufgabe 5, GAP, 48 Bytes

"pneumonoultramicroscopicsilicovolcanoconiosis";

Aufgabe 6, Excel, 51 48 Bytes

=IF(TEXT(NOW(),"md")="11","Happy New Year!","")

Danke an @Bond für die 3 Bytes.

Task 7, Python 2.6, 98 93 85 Bytes

from random import*
l=range(13312,19893)
shuffle(l)
print ''.join(map(unichr,l[:64]))

Dies ist das erste Mal, dass ich versucht habe, etwas in Python zu tun. Könnte also viel besser sein. Vielen Dank an @Dennis und @Jacob für die tollen Tipps

Task 8, TCL, 57 Bytes

proc m {a b} {string match [regsub -all (.) $a *\\1]* $b}

Schade, dass das Entfernen von Leerzeichen dies zunichte macht

Aufgabe 9, Hecht, 53 Bytes

mixed m(array(array(int))a,int n){return(a[*])[*]*n;}

Eine Funktion, die das multiplizierte Array zurückgibt

Aufgabe 10, Powershell, 88 Bytes

Function t($n){Foreach($s in "  ______ "," |      |","~ ()--() "){($s*$n).Substring(1)}}

Eine PowerShell-Funktion. Ich denke, ich kann es ein bisschen verkürzen, aber hier ist es im Moment.

Und endlich fertig :)

MickyT
quelle
Sie können 4 Bytes auf Aufgabe speichern 6: =IF(TEXT(NOW(),"md")="11","Happy New Year!","").
Bond
@ Bond Danke dafür
MickyT
Ich kenne Python auch nicht, l[:63]sollte aber funktionieren und (13312,19894)ist kürzer als die hexadezimalen Konstanten (und die Summe).
Dennis
@Dennis Dank wird es ausprobieren und ändern
MickyT
@ Tennis Ich wählte 19893 als den hohen Wert, weil range(19892,0x4DB5+1)gab mir[19892, 19893]
MickyT
4

Aufgabe 2, J, 10 Bytes

1&p:*/@,#:

Stellt eine boolesche 0 oder 1 voran, wenn die Eingabe der Binärdarstellung entspricht, und übernimmt das Produkt. Arbeitet an der aktuellen Version von J.


Aufgabe 5, HTML, 45 Bytes

pneumonoultramicroscopicsilicovolcanoconiosis

Aufgabe 6, Fisch, 53 Bytes

test 0101 = (date '+%d%m');and echo 'Happy New Year!'

Basierend auf der Bash-Antwort.


Task 8, APL, 12 Bytes

{(⍳⍴⍺)≡⍋⍵⍳⍺}

Dies ist ein Funktionsausdruck. Es vergleicht die Reihenfolge der Zeichen in der größeren Zeichenfolge mit der erwarteten Reihenfolge, wenn sie sortiert werden.


Task 9, K, 1 Byte

*

Sollte in jeder Version funktionieren. Arithmetische Operationen werden auf Arrays verteilt.

Tom
quelle
Kommentare sind nicht für eine längere Diskussion gedacht. Diese Unterhaltung wurde in den Chat verschoben .
Martin Ender
2
Ihr Code für Aufgabe 8 funktioniert nicht für abc caxbxc.
Jimmy23013
4

Aufgabe 1, Ruby, 40 Bytes

def f n;(0..n-1).inject{|a,b|a+b**3};end

Zum ersten Mal überhaupt etwas in Ruby zu schreiben. Getestet mit Rubin 1.8.7.


Aufgabe 2, R, 50 Bytes

n=scan();p=log(n+1,2);!p%%1&sum(!n%%2:n,!p%%2:p)<3

Berechnet p, prüft, ob es sich um eine Ganzzahl handelt und ob n und p Primzahlen sind.


Aufgabe 5, PostgreSQL, 54 Bytes

SELECT'pneumonoultramicroscopicsilicovolcanoconiosis';

Aufgabe 6, Lua, 55 Bytes

print(os.date("%j")=="001" and "Happy New Year!" or "")

Aufgabe 8, Python, 65 Bytes

import re;f=lambda s,S:bool(re.search(re.sub(r'(.)',r'\1.*',s),S))

Verwendungszweck:

>>> import re;f=lambda s,S:bool(re.search(re.sub(r'(.)',r'\1.*',s),S))
>>> f('abc','axbxcx')
True
>>> f('bac','axbxcx')
False
>>> f('abc','axdxcx')
False
>>> f('abc','abc')
True

Aufgabe 10, Julia, 73 Bytes

f(n)=print(" ______  "^n*"\n"*"|      | "^n*"\n"*(" ()--() ~"^n)[1:9n-1])

Vielen Dank an @AlexA. für die Hilfe bei der Kürzung dieses Codes! Beispiel für Ausgänge:

julia> f(0)




julia> f(1)
 ______  
|      | 
 ()--() 

julia> f(2)
 ______   ______  
|      | |      | 
 ()--() ~ ()--() 

julia> f(3)
 ______   ______   ______  
|      | |      | |      | 
 ()--() ~ ()--() ~ ()--() 
Plannapus
quelle
Für Aufgabe 2 könnten Sie verwendenlog2
MickyT
Ich zähle 86 Bytes zur Zeit für Ihre Julia Aufgabe 10. Aber man kann es bis 81 erhalten , indem eine Lambda - Funktion (dh ersetzen f(n)=mit n->) verwendet wurde und 1:(9*n-1)einfach 1:9n-1.
Alex A.
Richtig, ich habe \naus Gewohnheit als 1 Byte gezählt .
Plannapus
Anstatt (" "*"_"^6*" ")^n, können Sie " ______ "^n(ebenfalls für das | |Teil) verwenden. 70 Bytes n->print(" ______ "^n*"\n"*"| | "^n*"\n"*(" ()--() ~"^n)[1:9n-1]). (Das Leerzeichen zwischen den Balken wird hier jedoch nicht angezeigt)
Alex A.
3

Aufgabe 1, Haskell, 17 Bytes

f x=(x*(x-1)/2)^2

Aufgabe 2, Mathematica, 30 Bytes

PrimeQ@#&&Mod[Log2[#+1],1]==0&

Aufgabe 3, JavaScript, 46 Bytes

function(x){return x.sort()[0|(x.length-1)/2]}

Aufgabe 5, MATLAB, 47 Bytes

'pneumonoultramicroscopicsilicovolcanoconiosis'

Aufgabe 6, Ruby, 56 Bytes

print Time.now.to_s[5,5]=="01-01"?"Happy New Year!":""

Task 7, Python, 106 Bytes (Einrücken mit \t)

from random import*
s=''
while len(s)<64:
    c=unichr(randint(0x3400,0x4DB5))
    if c not in s:
        s+=c
print s

Beachten Sie, dass die einfache Verwendung von list(set(s))hier nicht funktioniert, da dies aufgrund der Neuordnung von Listenelementen zu einer ungleichmäßigen Wahrscheinlichkeitsverteilung im Bereich aller möglichen Zeichenfolgen führt .


Saran
quelle
@ Tennis wieder Aufgabe 7: Vereinbart zu Punkt 1, wird behoben, wann immer ich eine Chance habe. Gibt es in Bezug auf REPL eine Regel dagegen?
Saran,
Gut, jetzt ist alles repariert.
Saran,
Für 1 können Sie vermutlich tun (x*x-x)^2/4?
25.
Ärgerlicherweise wandelt die Standardsortierfunktion von JavaScript Zahlen beim Vergleich in Zeichenfolgen um, sodass nur die erste Ziffer jeder Zahl verglichen wird. Daher schlägt es am [2,3,10] fehl.
NinjaBearMonkey
1
In 7 können Sie if c not in s:s+=calles in eine Zeile setzen und dabei ein paar Zeichen speichern. Auch 0x3400kann ersetzt werden 13312, was ein Zeichen kürzer ist (und ähnlich für 0x4db5). Schließlich wird die Anzahl der Zeichen nicht geändert. Wenn Ihnen der Tabulator-Einzug nicht gefällt, können Sie ihn stattdessen mit einem einzelnen Leerzeichen einrücken.
Mathmandan
3

Aufgabe 1, Haskell, 15 Bytes

f n=(n*n-n)^2/4

Aufgabe 2, Julia, 28 Bytes

n->(isprime(n)&&ispow2(n+1))

Aufgabe 3, Oktave, 30 Bytes

@(x)sort(x)(ceil(length(x)/2))

Aufgabe 5, Yacas , 45 Bytes

pneumonoultramicroscopicsilicovolcanoconiosis

Aufgabe 6, Mathematica, 46 Bytes

If[DateList[][[{2,3}]]=={1,1},Happy New Year!]

Task 9, PARI / GP, 10 Bytes

(n,a)->n*a
Alephalpha
quelle
3

Task 3, Clip, 13 Bytes

gHk[tivt}l`sk

Andere Version:

gHkci`v``l`sk

Das `schien zu viel zu kosten.

Aufgabe 4, KSFTgolf, 16 Bytes

g:]2%:)-2/:;xgpc

Der Dolmetscher ist da. Ich bin nicht sicher, was ich tue ... Es wird das Negabinary drucken und dann abstürzen.

Es gibt einen Fehler im Interpreter. Oder ich kann es mit der integrierten Basiskonvertierung auf 12 Byte reduzieren (aber es funktioniert nur mit positiven ganzen Zahlen):

2*02-ba'Z=;x

Ursprüngliche CJam-Version:

qi{_1&_@^-2/}h;]W%

Ich habe Pip, Ostrich, Clip und Burlesque ausprobiert, um herauszufinden, ob es einen Esolang mit eingebautem Negabinary gibt. Keiner von ihnen hat funktioniert. Es wurde KSFTgolf verwendet numpy, das sich bei negativer Basis anscheinend merkwürdig verhält. Aber es ist nicht einfach, es mit nicht positiven Zahlen zu machen.

Task 7, CJam, 15 Bytes

'䶶,DAm<>mr64<

Task 8, APL, 21 Bytes

∨/↑{⍺∧0,2∧/∨\⍵}/⌽⍞=↓⍞

Probieren Sie es online aus.

jimmy23013
quelle
Lol @ "Ich bin nicht sicher, was ich tue"
Alex A.
Die Frage war nicht sehr klar, aber meine Absicht war, dass der Code für Aufgabe 4 Eingabe 0 handhaben sollte. Die Version ohne eingebaute Basiskonvertierung scheint das in Ordnung zu bringen.
Dennis
@ Tennis behoben. Aber was ist, wenn ich mich für unary entschieden habe?
Jimmy23013
Die Verwendung eines festen Versatzes oder eines Zweierkomplements könnte funktionieren. Ich würde auch ein Zeichen gefolgt von einer unären Nummer akzeptieren.
Dennis
3

Aufgabe 2, x86-Plasma, 40 Bytes

C7 45 FC FF FF 07 00 B9 
00 00 00 00 B8 02 00 00 
00 D3 E0 3B 45 FC 7D 03 
41 EB F1 B8 02 00 00 00
D3 E0 48 3B 45 FC 75 13

(ausgenommen Header, MessageBox usw. - nur relevante Bytes)

include     \masm32\include\user32.inc  
includelib  \masm32\lib\user32.lib

.data
    ClassName   db "Mersenne Prime Found",0
.data?

.code
start proc
    LOCAL IsMersenne: DWORD
    mov IsMersenne, 524287 ; put number to test in this input
    mov ecx, 0
l00p:
    mov eax, 2
    shl eax, cl
    cmp eax, IsMersenne
    jge br3ak
    inc ecx
    jmp l00p
br3ak:
    mov eax,2                                                                                     
    shl eax, cl 
    dec eax
    cmp eax, IsMersenne                                                           
    jnz n0pr1me                                                              
    invoke MessageBox, 0, addr ClassName, addr ClassName, 40h
n0pr1me:
    ret
start endp
end start

Aufgabe 3, C, 136 Bytes

#include<stdio.h> 
int C(void*A,void*B){return(*(int*)A-*(int*)B);} 
main(){int S=4;int A[]={3,1,2,4};qsort(A,S,4,C);printf("%i",A[((S&1)?S:S-1)/2]);}

Kompilieren Sie mit gcc -o Prime main.c


Task 10, C ++, 478 Bytes

#include<stdio.h>
#include<string.h> 
#include<stdlib.h>
void D(int Z){int L=9,i,X=0;const char*A=" ______  ";const char*B="|      | ";const char* C = " ()--() ~ ";char*P=(char*)malloc(27*Z+5);for(i=0;i<Z-1;i++){if(!i){memcpy(P,A,L);X+=L;}memcpy(&P[X],A,L);X+=L;if(i==Z-2){memcpy(&P[X],"\n",1);X++;}}for(i=0;i<Z;i++){memcpy(&P[X],B,L);X+=L;if(i==Z-1){memcpy(&P[X],"\n",1);X++;}}for(i=0;i<Z;i++){memcpy(&P[X],C,L);X+=L;if(i==Z-1)P[X-1]='\0';}printf("%s\n",P);free(P);}
main(){D(15);}

Kompilieren Sie mit g++ -o Trucks main.cpp

C & C ++ kann gekürzt werden, aber es würde Compilerfehler hinzufügen. Ich kenne die genauen Regeln nicht und habe versucht, den Code ohne Compilerfehler zu hinterlassen.

Pulga
quelle
3
Willkommen bei PPCG! Compiler-Warnungen können ignoriert werden, solange der Compiler eine verwendbare Binärdatei erzeugt.
Dennis
2
Beim Codegolf warnt Sie ein C-Compiler, dass er weiter golfen kann, indem keine Warnung ausgegeben wird .
Comintern,
Ignorieren Sie die Warnungen - und fühlen Sie sich frei , so viel Speicher freizugeben, wie Sie möchten. :-)
Toby Speight
3

Aufgabe 1, Python, 35 Bytes

lambda x:sum(_**3for _ in range(x))

Task 3, CJam, 9 Bytes

q~$_,(2/=

Aufgabe 4, JavaScript, 55 53 Bytes

function(n){s=0xAAAAAAAA;return((n+s)^s).toString(2)}

Aufgabe 5, Pyth, 46 Bytes

"pneumonoultramicroscopicsilicovolcanoconiosis

Task 6, C #, 65 Bytes

string c(){return DateTime.Now.DayOfYear<2?"Happy New Year!":"";}
Kade
quelle
2

Aufgabe 1, jq, 24 Bytes

[range(1;.)|.*.*.]|add+0

Aufgabe 6, PostgreSQL, 54 Bytes

select'Happy New Year!'where'001'=to_char(now(),'DDD')
Mann bei der Arbeit
quelle
2

Task 1, Cjam, 7 Bytes

q~,:+_*

Edit: Gerade bemerkt, dass Martin dies vor mir gepostet hat. Ich werde etwas anderes versuchen ...

Aufgabe 3, Python, 30 Bytes

lambda l:sorted(l)[~-len(l)/2]

Python 2.

Aufgabe 5, ///, 45 Bytes

pneumonoultramicroscopicsilicovolcanoconiosis

/// gibt nur etwas ohne /Zeichen aus.

Aufgabe 7, Pyth, 19 Bytes

s>64.SmC+13312d6582

Programm. Bitte sag mir, ob ich die Mathematik durcheinander gebracht habe. Probieren Sie es hier aus

Aufgabe 9, Oktave, 9 Bytes

@(a,n)a*n

Handle für anonyme Funktionen. Octave macht dies automatisch mit matrix * scalar.

FryAmTheEggman
quelle
Für Aufgabe 7 muss es eindeutig sein.
Maltysen,
Ja, Pyth hat .SShuffle, und Sie können sum anstelle von verwenden jk.
Maltysen
2

Ich habe keine Zeit gefunden, sie alle zu versuchen, aber hier ist ein Anfang

Aufgabe 1, Gleichstrom, 8 Bytes

d1+*d*4/

Eingabe und Ausgabe gemäß dcKonvention nach oben .

Aufgabe 5, Emacs Lisp, 46 Bytes

'pneumonoultramicroscopicsilicovolcanoconiosis

Missbrauch der Regeln:

grep 'pn.*v' /usr/*/*/brit*-large

Das Beste, was ich durch das Entpacken aus einer komprimierten Form erreichen konnte, war 55 in Perl:

unpack("H45",'uïFVóÙ¤¼g°0Æö<¥le°°')=~y/0-9bdf/i-v/r

(Die obigen nicht druckbaren Zeichen werden von SE unkenntlich gemacht, aber da dies nicht meine eigentliche Antwort ist, behebe ich sie nicht.)

Task 6, SQL, 54 Bytes

SELECT IF(now()LIKE'%-01-0_%','Happy New Year!','Hi');

Ich halte die ersten zehn Tage im Januar für "angemessene" Tage für diesen Gruß, aber Sie können sich nach Belieben anpassen. Das now() LIKEKonstrukt funktioniert kürzer als das Extrahieren des Tages des Jahres mit DATE_FORMAT(now(),'%j').

Aufgabe 10, sed, 58 Bytes

s/./ ()--() ~/g;s/.$//;h;y/()-~/___ /;p;g;y/ ()-~/|    /;G

Eingabe in unary.

Toby Speight
quelle
strstrsucht nach Teilzeichenfolgen, nicht nach Teilfolgen. Ich fürchte, Aufgabe 5 ist kolmogorov-komplex. Das Abrufen des Wortes aus einem Wörterbuch ist vielleicht klug, aber nicht zulässig.
Dennis
Vielen Dank. Ich habe die folgende falsch verstanden. Ich mache eine alternative Aufgabe 5, aber es ist sehr langweilig.
Toby Speight
Es gibt einige interessante Lösungen für Aufgabe 5, aber bisher hat noch niemand eine kurze Lösung veröffentlicht .
Dennis
1

Aufgabe 5, MarioGolf , 50 Bytes

Dies war eine Sprache, die ich seit einiger Zeit entwickelt habe.

Die aktuelle Version bietet genügend Funktionen, um diese Herausforderung auszuführen.

Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O

Sie können es online unter http://htmlpreview.github.io/?https://raw.githubusercontent.com/ismael-miguel/mariogolf/master/js/testpage.html#c:Y|<pneumonoultramicroscopicsilicovolcanoconiosis|O ausprobieren

Derzeit wird die Entwicklung gestoppt und die Implementierung ist unvollständig.

Das letzte Commit war am 13. März 2015.

Aufgabe 6, PHP, 37 Bytes

Dieser ist wirklich einfach und macht Spaß!

<?=date(jn)==11?'Happy New Year!':'';

Aufgabe 10, Javascript, 121 Byes

Ja, nicht so golfen ...

Aber es macht den Job!

console.log((' ______  '.repeat(i=prompt()))+'\n'+('|      | '.repeat(i))+'\n'+(' ()--() ~'.repeat(i).replace(/~$/,'')));

Versuch es:

Der Code wird im Stack-Snippet nicht gut angezeigt, da er "in der Ausgabe mit beginnt . Zusätzliche Leerzeichen wurden hinzugefügt, um dies auszugleichen.

Der ursprüngliche Code kann problemlos auf der Chrome-Konsole ausgeführt werden, und die Ausgabe entspricht den Erwartungen.

Ismael Miguel
quelle
@ Tennis Danke! Ich habe die Aufgabe 5 falsch verstanden. Ich schaue immer noch, wie ich die anderen Aufgaben implementieren werde, aber ich habe eine schlechte Zeit.
Ismael Miguel
1
Bist du dir sicher date(dM)? Hier wird "25Jun" zurückgegeben. (Gebietsschema auf en_US gesetzt) ​​Vielleicht würden "j" und "n" besser funktionieren, da "d" und "m" die auf Breite 2
aufgefüllten
@manatwork Du bist richtig. Es war mein Fehler. Dass du das entdeckst.
Ismael Miguel
1

Task 1, CJam, 10 Bytes

li,{3#}%:+

Versuch es hier

Aufgabe 5, Retina, 46 Bytes

<empty>
pneumonoultramicroscopicsilicovolcanoconiosis
Die Nummer eins
quelle
1

Aufgabe 1, Oktave, 15 Bytes

@(n)(n^2-n)^2/4

EDIT: Ich dachte, ich hätte dies hinzugefügt, aber es scheint, als hätte ich vergessen zu speichern: Dies nutzt die Tatsache, dass sum(1^3+2^3+3^3+...+n^3) = sum(1+2+3+...+n)^2 = [n*(n+1)/2]^2

Aufgabe 3, Javascript, 24 Bytes

x=>x.sort()[x.length>>1]
fehlerhaft
quelle
1

Okay, lassen Sie uns zuerst die einfachen Dinge erledigen:

Task 5, ASP, 45 Bytes

pneumonoultramicroscopicsilicovolcanoconiosis

Aufgabe 6, JavaScript, 46 Bytes

/an 01/.test(Date())&&alert("Happy New Year!")
user2428118
quelle
1

Aufgabe 1, VBA, 126 Bytes

Function f(n As Integer)
    Dim i As Integer
    For i = 0 To n - 1
        f = f + i ^ 3
        Next i
End Function

Ich habe keine Ahnung, wie man in VBA Golf spielt. Ich habe kein Leerzeichen eingegeben, VBA fügt automatisch Leerzeichen ein. =f(5)In einer Zelle in Excel wird 100 angezeigt.

Aufgabe 2, Oktave, 32 Bytes

@(n)isprime(n)&~mod(log2(n+1),1)

Aufgabe 5, Golfscript, 47 Bytes

"pneumonoultramicroscopicsilicovolcanoconiosis"

Task 9, MATLAB, 9 Bytes

@(A,n)A*n

Nun, es ist ein Anfang ...

Stewie Griffin
quelle