Codegolf: Difference between revisions

From NoName e.V.
Jump to navigation Jump to search
(so .. jetzt noch mit richtig formatierter ausgabe)
No edit summary
 
(40 intermediate revisions by 12 users not shown)
Line 1: Line 1:
=== Challenge #1 ===
Es gelten die [[Codegolf/Generische_Regeln|generischen Regeln]] und STALLMANCATs Ratschläge:
<SdK> gibts wörter, die nach rot13 n anderes existierendes wort ergeben?


Testdatei: http://qu.cx/~mxf/web2.gz == /usr/share/dict/web2
[[image:stallmancatdont128610053697188637.jpg]]
Gepiped durch wc -l sollte 154 rausfallen, da einige Wörter doppelt vorkommen.
Falls Duplikate gefiltert werden, sollten es 132 sein.
Ausgabe in Form von "iraq->vend\n"


==== mxf: Perl ====
=== Challenge #5: RGB2Rv10 ===
Fuer 154 Zeilen:
"Interpretiere einen esoterischen 2D Taschenrechner"
perl -nle'$w{$r=$_=lc}++;y&a-z&n-za-m&;$w{$_}&&print"$r->$_"' /usr/share/dict/web2
50+2 Zeichen<br/><br/>
Fuer 132 Zeilen:
perl -nle'$w{$r=$_=lc}=1;y&a-z&n-za-m&;$w{$_}-->0&&print"$r->$_"' /usr/share/dict/web2
54+2 Zeichen


==== urs: Perl ====
[[Codegolf/RGB2Rv10|klick mich]]
perl -nle'($$_=$_=lc)=~y^a-z^n-za-m^;print"$_->$$_"if$$$_' /usr/share/dict/web2
47+2 Zeichen. Gibt 154 Zeilen output.


==== [[User:PhilFry|PhilFry]]: Ruby ====
=== Challenge #4: WPA-Passphrase generieren ===
ruby -nle'y||={};$_.downcase!;y[$_]=0;r=$_.tr("a-z","n-za-m");y[r]&&(p $_+"->"+r)' < /usr/share/dict/web2
"Generiere einen 63 Zeichen-String gleichverteilt aus printable ASCII"


71 Zeichen
[[Codegolf/wpa|klick mich]]


==== Ch3ka: php ====
=== Challenge #3: Wochentagberechnung ===
<?$f=file($argv[1]);while($a[]=strtolower(next($f))){}while($b[]=str_rot13(next($a))){$c=end($b);if(in_array($c,$a))echo$c;}?>
"Wie ist der Wochentag eines bestimmten Datums?"
122 Chrs


=== watz: php ===
[[Codegolf/3|klick mich]]
<?require('File.php');foreach(explode("\n",strtolower(File::readAll($argv[1]))) as $f)$i[$f]=str_rot13($f);foreach($i as $a=>$b){if(array_key_exists($b,$i)){unset($i[$a]);echo"$a -> $b\n";}}?>
193 Zeichen .. dafür schneller als Ch3ka .. Sortiert doppelte Worte auch im File raus --> 132 Zeilen+1 (1 Zeile ist warum auch immer leer)
Man kann aber noch ein paar Zeichen rauskürzen und evlt. das mit dem File einlesen schöner machen.


==== [[User:Kungi|Kungi]]: Python ====
aktiv? NEIN - In der Auswertung
import sys
e=dict([(a,0)for a in open(sys.argv[1]).read().lower().split()])
for w in e:
  b=w.encode('rot13')
  if b in e:
  print w+" -> "+b


kungi@BeerBook: wc golf.py                                                                                                                 
Höchstens haltbar bis/hoogstens houdbaar tot: 27.07.2008 00:00 CEST
      6      19    140 golf.py


==== k-zed: common lisp ====
=== Challenge #2: Unlambda ===
Ein [http://www.madore.org/~david/programs/unlambda/ Unlambda] Interpreter. Genauere Zielvorgaben gibt es bald.


(with-open-file (s "/usr/share/dict/web2")
Na, dieses Loch war dann doch einwenig zu umfangreich?
  (let ((d (make-hash-table :test #'equal)))
    (loop for l = (read-line s nil) until (not l)
          do (setf (gethash (string-downcase l) d) t))
    (maphash
      (lambda (k v)
        (let ((p (map 'string (lambda (c) (code-char (+ (mod (- (char-code c) 84) 26) 97))) k)))
          (when (gethash p d) (format t "~A -> ~A~%" k p)))) d)))


==== CentronX: eicar & ein Inder ====
aktiv? NEIN


Man lasse einen Inder das ganze in eicar eintippen und dann vergleichen.
=== Challenge #1: aka. wie alles anfing ===


==== Sack-C-ment: C natürlich ====
<SdK> gibts wörter, die nach rot13 n anderes existierendes wort ergeben?
#include <stdio.h>
#include <stdlib.h>
#include <search.h>
int main() {
FILE *fd = fopen("/tmp/web2", "r"); char *b = malloc(234937 * 26); int c = 0; ENTRY e,*d; hcreate(234937);
while (fgets(b+(26*c++), 26, fd)) { char *r=strdup(b+(26*(c-1))); e.key=r; while (*(++r) != '\0' && *r != '\n') *r = (*r+13 > 'z' ? *r-13 : *r+13); e.data = b+(26*(c-1)); hsearch(e, ENTER); }
for (c = 0; c < 234937; c++) { e.key = b+(26*c); if (d=hsearch(e, FIND)) printf("print it! %s / %s\n", d->data, d->key); }
}
Compile / Setup:
sort /usr/share/dict/web2 /tmp/web2
gcc -o golf golf.c && ./golf
Exakt 500 Zeichen


die Antworten sind [[Codegolf/1|hier]]


aktiv? NEIN


[[Category:Projekte]]
[[Category:Projekte]]

Latest revision as of 21:09, 3 October 2013

Es gelten die generischen Regeln und STALLMANCATs Ratschläge:

Stallmancatdont128610053697188637.jpg

Challenge #5: RGB2Rv10

"Interpretiere einen esoterischen 2D Taschenrechner"

klick mich

Challenge #4: WPA-Passphrase generieren

"Generiere einen 63 Zeichen-String gleichverteilt aus printable ASCII"

klick mich

Challenge #3: Wochentagberechnung

"Wie ist der Wochentag eines bestimmten Datums?"

klick mich

aktiv? NEIN - In der Auswertung

Höchstens haltbar bis/hoogstens houdbaar tot: 27.07.2008 00:00 CEST

Challenge #2: Unlambda

Ein Unlambda Interpreter. Genauere Zielvorgaben gibt es bald.

Na, dieses Loch war dann doch einwenig zu umfangreich?

aktiv? NEIN

Challenge #1: aka. wie alles anfing

<SdK> gibts wörter, die nach rot13 n anderes existierendes wort ergeben?

die Antworten sind hier

aktiv? NEIN